Ich fühle mich wirklich dumm für das Fragen, aber ich habe seit über 8 Stunden geprügelt. Wie erhalte ich das ausgewählte Element, um seinen Text in meinem WPF-Kombinationsfeld anzuzeigen, wenn ausgewählt?Text wird nicht angezeigt für ausgewählte Artikel in ComboBox
Oben ist eine Option Dialog, der Benutzer die verfügbaren Turnier-Displays auswählen und konfigurieren. Das Problem ist, dass das ausgewählte Kombinationsfeldelement das Benutzersteuerelement anstelle des Anzeigenamens anzeigt.
Auf Fenster Loaded:
//_displayer is a private member populated using MEF
//[ImportMany(typeof (IDisplayer))]
//private IEnumerable<IDisplayer> _displayers;
DisplayTypeComboBox.ItemsSource = _displayers;
Die ComboBox XAML:
<ComboBox
Name="DisplayTypeComboBox"
Grid.Column="1"
Grid.ColumnSpan="2"
Grid.Row="1"
IsEditable="False"
SelectionChanged="DisplayTypeComboBox_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate>
<ComboBoxItem Content="{Binding DisplayerName}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Die IDisplayer:
public interface IDisplayer
{
string DisplayDataLocation { get; set; }
string DisplayerName { get; }
string DisplayerDescription { get;}
bool WatcherEnabled { get; }
UserControl View { get; }
string DisplayerImageLeft { get; set; }
string DisplayerImageRight { get; set; }
void Update();
}
Nun so weit ich habe versucht ComboBoxItem, TextBlock- und beschriften - :( Sie sollten die ItemContainerStyle und nicht ItemTemplate verwendet Da ComboBox die inneren Elemente mit einem ComboBoxItem einwickelt... alle erzeugen das gleiche Ergebnis – Aaron
Kannst du verlinken und zB kann ich es nicht so einstellen, wie ich das ItemTemplate gemacht habe.Alles, was ich googele, ist nichts Einfaches und Sauberes – Aaron
Die SelectionBoxItemTemplate Eigenschaft ist die Eigenschaft, die du einstellen musst. Leider ist es privat Versuchen Sie, Ihren eigenen ComboBox-Stil zu erstellen, und setzen Sie das SelectionBoxItemTemplate auf das, was Sie benötigen – mdm20