Ich kann nicht scheinen, ein ContentTemplate für ein ComboBoxItem festzulegen. Aus diesem Grund versuche ich, zwei Einträge für meine Daten in der Combobox zu haben. Wenn das Kombinationsfeld geöffnet ist (Menü ist inaktiv), möchte ich ein Textfeld (mit dem Namen des Bildes) und ein Bildsteuerelement darunter. Wenn ich das Element auswähle, möchte ich, dass das Kombinationsfeld nur ein Textfeld mit dem Namen des Bildes anzeigt.Wie verwende ich eine andere Vorlage für ausgewählte und Dropdown-Status in Kombinationsfeld in Silverlight?
Ich dachte, ich könnte dies erreichen, indem Sie die ItemTemplate und ItemContainerStyle der ComboBox ändern. Die ItemContainerStyle enthält folgenden Content:
<ContentPresenter HorizontalAlignment="Left" Margin="{TemplateBinding Padding}" x:Name="contentPresenter" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"/>
So ging ich davon aus, dass ich nur den Content hier einstellen könnte und es würde funktionieren. Aber ich kann nicht scheinen, um es an der Arbeit:
<DataTemplate x:Key="ComboBoxDataTemplate">
<Grid>
<TextBlock Text="{Binding Path='Name'}"/>
</Grid>
</DataTemplate>
<DataTemplate x:Key="ComboBoxItemTemplate">
<StackPanel>
<TextBlock Text="{Binding Path='Name'}"/>
<Image Source="{Binding Path='Source'}" Width="64" Height="64"/>
</StackPanel>
</DataTemplate>
<Style x:Key="ComboBoxItemStyle1" TargetType="ComboBoxItem">
...
<Setter Property="ContentTemplate" Value="{StaticResource ComboBoxItemTemplate}"/>
...
Hier ist mein Kombinationsfeld:
<ComboBox Width="70" Margin="3,0,0,0"
ItemsSource="{StaticResource Source}"
ItemTemplate="{StaticResource ComboBoxDataTemplate}"
ItemContainerStyle="{StaticResource ComboBoxItemStyle1}"
/>
Die einzige Art, wie ich dies an der Arbeit bekommen kann, ist die Content vom ItemContainerStyle zu entfernen, und Ersetzen Sie es durch den Inhalt meiner benutzerdefinierten Vorlage (ComboBoxItemTemplate). Aber ich dachte nicht, dass ich diesen Ansatz verwenden sollte, da dies bedeuten würde, dass der ContentPresenter nicht mehr existiert (und der Code in der ComboBox könnte darauf beruhen, dass er existiert).
Jede Hilfe bei der Anzeige einer Combo-Box mit einem anderen Dropdown und ausgewählte Vorlage würde sehr geschätzt werden!
Wirklich hilfreich. Vielen Dank. Nur um zu klären, wie ich mich damit abmühte, das "SelectedObject" zu ersetzen, obwohl es jetzt offensichtlich erscheint. Mein Code-Fragment für den Content sieht wie folgt aus: DataTemplate> ContentPresenter.ContentTemplate> ContentPresenter> –