Ich stecke in diesem Problem fest. Ich habe eine Combobox in meiner Anwendung (im Code erstellt, nicht XAML); Ich habe es mit Kontrollkästchen gefüllt, weil ich ein Dropdown-Steuerelement mit Kontrollkästchen benötigt.WPF Combobox mit verschiedenen ausgewählten Artikel und Text
Jetzt brauche ich die Combobox Auswahl nicht, weil es bedeutungslos ist. Also wollte ich im Textteil der Kontrolle ein Label zeigen.
Gibt es eine Möglichkeit, dies zu tun? Hier ist ein minimales Beispiel:
myComboBox = new System.Windows.Controls.ComboBox();
foreach (var key in myDictionary.Keys)
{
System.Windows.Controls.CheckBox chk = new System.Windows.Controls.CheckBox();
chk.Content = key;
chk.SetBinding(System.Windows.Controls.CheckBox.IsCheckedProperty, new Binding() { Mode = BindingMode.TwoWay, Source = this, Path = new PropertyPath("myDictionary[" + key + "]") });
RoutedEventHandler ev = (sender, e) =>
{
// Do something when a checkbox is changed
};
chk.Checked += ev;
chk.Unchecked += ev;
myComboBox.Items.Add(chk);
}
diese Weise, wenn der Benutzer auf eine Checkbox klickt der Checkbox Inhalt im Textfeld angezeigt wird.
ich es auch das Hinzufügen modifizierte
myComboBox.SelectionChanged += (sender, jender) =>
{
myComboBox.SelectedItem = null;
};
Auf diese Weise kein Text immer angezeigt wird. Aber .. Was wenn ich eine feste Zeichenkette in den Textteil der Combobox schreiben wollte?
Vielen Dank
Haben Sie darüber nachgedacht, die WPF-Toolkit? Sie haben eine Kontrolle, die genau das ist, was Sie beschreiben: https://wpftoolkit.codeplex.com/wikipage?title=CheckComboBox Sonst könnten Sie ItemTemplate verwenden, glaube ich. – Joe
@Joe Danke für Ihren Kommentar. Wie auch immer, ich habe das WPF Toolkit nie in Betracht gezogen. Vielen Dank. Dieses Steuerelement verkettet jedoch den Inhalt der Kontrollkästchen zusammen. Ich brauchte eine feste Zeichenfolge, um dort anstelle des Kontrollkästchens Inhalte anzuzeigen. – frarugi87
Ah, tut mir leid, ich dachte, das war, was Sie wollten. – Joe