Pregunta

Tengo un montón de código que depende del tipo ComboBox, y quiero poder usarlo en una nueva interfaz de usuario, pero la interfaz de usuario para la que quiero usar debe parecerse a un RadioButton para uso. razones. ¿Es posible que un control ComboBox parezca un conjunto de RadioButtons?

¿Fue útil?

Solución

Mi sugerencia sería usar un ItemsControl con un DataTemplate que renderice RadioButtons. Al ItemsControl te unirías lo mismo que estás vinculando al ComboBox. Una advertencia es que debe establecer el Nombre de grupo de los botones de opción en algo que sería el mismo para el grupo, para que puedan ser mutuamente excluyentes. De lo contrario, si no hace nada, podrá seleccionar más de un RadioButton simultáneamente.

Otros consejos

Podría crear un nuevo UserControl que tenga muchos de los mismos métodos que la clase ComboBox, pero adaptarlo para que cree múltiples cajas de radio en su lugar.

Sin embargo, tu pregunta es algo vaga.

IE crea una colección de elementos en su control de usuario, y cuando se agrega algo, dibuje un cuadro de radio y cambie el tamaño de su control, en lugar de lo que hace un cuadro combinado y solo agrega una cadena a la lista.

Luego, todo lo que tiene que hacer es encontrar y reemplazar todas sus referencias a ComboBox con RadioIFiedComboBox.

Aquí hay una comparación:

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

o

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

y

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
  }
}

El código anterior es solo un ejemplo, tendrías que crear todos los métodos que usas en la clase ComboBox y crear una funcionalidad similar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top