我有一大堆依赖于ComboBox类型的代码,我希望能够在新的UI上使用它,但是我想要使用它的UI需要看起来像RadioButton的可用性原因。是否可以让ComboBox控件看起来像一组RadioButtons?
答案 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类中使用的所有方法并创建类似的功能。