Em WPF, é possível ter um controle de caixa de combinação, que se parece com um RadioButton?

StackOverflow https://stackoverflow.com/questions/1615440

Pergunta

Eu tenho um monte de código que é dependente do tipo de caixa de combinação, e eu quero ser capaz de usá-lo em uma nova interface do usuário, mas a interface do usuário que eu quero usá-lo para as necessidades para olhar como um RadioButton para a usabilidade razões. É possível ter um olhar controle ComboBox como um conjunto de RadioButtons?

Foi útil?

Solução

A minha sugestão seria a utilização de um ItemsControl com um DataTemplate que tornaria RadioButtons. Para o ItemsControl que você vincular a mesma coisa que você está ligação para a caixa de combinação. Uma ressalva é que você precisa para definir o GroupName dos botões de rádio para algo que seria a mesma para o grupo, para que eles possam ser mutuamente exclusivos. Caso contrário, se você não fizer nada, você vai ser capaz de selecionar mais de um RadioButton simultaneamente.

Outras dicas

Você poderia construir um novo UserControl que tem muitos dos mesmos métodos que a classe ComboBox faz, mas adaptá-lo para que ele cria várias caixas de rádio em vez.

A sua pergunta é meio vago embora.

IE criar uma coleção de itens em seu controle de usuário, e quando algo é adicionado, desenhar uma caixa de rádio e redimensionar seu controle, ao invés do que uma caixa de combinação faz e apenas acrescenta uma corda à lista.

Então tudo que você tem a fazer é localizar e substituir todas as suas referências a ComboBox com RadioIFiedComboBox.

Heres alguma comparação:

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

ou

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

e

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

O código acima é apenas um exemplo, você tem que criar todos os métodos que você usa na classe ComboBox e criar uma funcionalidade semelhante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top