在WPF中,是否可以使用组合框控件,看起来像RadioButton?

时间:2009-10-23 19:26:58

标签: wpf combobox radio-button styles

我有一大堆依赖于ComboBox类型的代码,我希望能够在新的UI上使用它,但是我想要使用它的UI需要看起来像RadioButton的可用性原因。是否可以让ComboBox控件看起来像一组RadioButtons?

2 个答案:

答案 0 :(得分:2)

我的建议是使用带有DataTemplate的ItemsControl来渲染RadioButtons。对于ItemsControl,你绑定了与绑定到ComboBox相同的东西。 需要注意的是,您需要将单选按钮的GroupName设置为与组相同的内容,因此它们可以互斥。否则,如果您不做任何事情,您将能够同时选择多个RadioButton。

答案 1 :(得分:0)

你可以构建一个新的UserControl,它有许多与ComboBox类相同的方法,但是要调整它以便它创建多个单选框。

你的问题有点模糊。

IE在您的用户控件上创建一个Items集合,当添加某些内容时,绘制一个单选框并调整控件的大小,而不是组合框的作用,只是将一个字符串添加到列表中。

然后你所要做的就是找到并用RadioIFiedComboBox替换你对ComboBox的所有引用。

下面是一些比较:

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

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

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

上面的代码只是一个示例,您必须创建在ComboBox类中使用的所有方法并创建类似的功能。