Frage

Ich habe eine ganze Reihe von Code, der auf dem ComboBox-Typ abhängig ist, und ich möchte es verwenden, um auf eine neue Benutzeroberfläche zu können, aber die Benutzeroberfläche, die ich will, um es für Bedürfnisse wie ein Radiobutton für die Benutzerfreundlichkeit suchen Gründe dafür. Ist es möglich, ein ComboBox-Steuerelement aussehen wie eine Reihe von Radiobuttons zu haben?

War es hilfreich?

Lösung

Mein Vorschlag wäre, ein Item mit einem Datatemplate zu verwenden, die Radiobuttons machen würden. Zum Items würden Sie die gleiche Sache binden Sie an die ComboBox sind verbindlich. Ein Nachteil ist, dass Sie den Gruppennamen der Radiobuttons auf etwas festlegen müssen, das gleich zu der Gruppe sein würde, damit sie sich gegenseitig ausschließen. wenn man sonst nichts tun, werden Sie in der Lage sein, mehr als eine RadioButton- gleichzeitig zu wählen.

Andere Tipps

Sie können ein neues Benutzersteuerelement erstellen, die viele der gleichen Methoden, die die ComboBox-Klasse tut, aber es so anpassen, dass es stattdessen mehrere Funkboxen erstellt.

Ihre Frage ist allerdings ein bisschen vage.

IE erstellen Sie eine Artikel-Sammlung auf Ihrer Benutzersteuerung, und wenn etwas hinzugefügt wird, ein Funkfeld ziehen und Ihre Steuer Größe ändern, statt, was für ein Kombinationsfeld tut und fügt nur einen String in die Liste.

Dann alles, was Sie tun müssen, ist zu finden und alle Verweise auf ComboBox mit RadioIFiedComboBox ersetzen.

Heres einig Vergleich:

ComboBox cb = new ComboBox();
cb.Items.Add("blah");

oder

RadioIFiedComboBox cb = new RadioIFiedComboBox();
cb.Items.Add("blah");

und

public class RadioIFiedComboBox : UserControl {
  public ObservableCollection<object> Items = new ObservableCollection<object>();
  public RadioIFiedComboBox() {
    Items.CollectionChanged += new NotifyCollectionChangedEventHandler(YourCollectionChanged);
  }
  private void YourCollectionChanged(){
    //do something here to redraw your controls
  }
}

Der obige Code ist nur ein Beispiel, dann würden Sie alle Methoden erstellen haben Sie in der ComboBox-Klasse verwenden und eine ähnliche Funktionalität erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top