目前我有一个绑定到泛型类型的RadioButton
...TestObject<T>
在这个对象中,我有一个名为 Value 的属性,它可以是 1 或 0。我有一个名为MyList
的属性,它是一个包含以下值的Dictionary<T,String>
:
INT String
0 "This is the first option"
1 "This is the second option"
我在将RadioButton
绑定到MyList
时遇到麻烦。目前我已经将 IsCheck ed 绑定到值(使用转换器返回真/假)。我最大的问题是字典以及如何将其绑定到RadioButton
控件,以便我可以在屏幕上看到 2 个RadioButton
选项。
有什么想法吗?
为什么不使用 KeyValuePair 或 Tuples 列表而不是字典?
然后,您可以使用 ItemsControl,将单选按钮放入 DataTemplate 中,并将 ItemsSource 绑定到键值对列表。
尝试在运行时填充单选按钮。
下面是使用 WPF 的示例:
private RadioButton CreateRadioButton(RadioButton rb1, string content, Thickness margin, string name)
{
//private RadioButton CreateRadioButton(RadioButton rb1, string content, Thickness margin, string name)
// We create the objects and then get their properties. We can easily fill a list.
//MessageBox.Show(rb1.ToString());
Type type1 = rb1.GetType();
RadioButton instance = (RadioButton)Activator.CreateInstance(type1);
//MessageBox.Show(instance.ToString()); // Should be the radiobutton type.
PropertyInfo Content = instance.GetType().GetProperty("Content", BindingFlags.Public | BindingFlags.Instance);
PropertyInfo Margin = instance.GetType().GetProperty("Margin", BindingFlags.Public | BindingFlags.Instance);
PropertyInfo Name = instance.GetType().GetProperty("Name", BindingFlags.Public | BindingFlags.Instance);
// This is how we set properties in WPF via late-binding.
this.SetProperty<RadioButton, String>(Content, instance, content);
this.SetProperty<RadioButton, Thickness>(Margin, instance, margin);
this.SetProperty<RadioButton, String>(Name, instance, name);
return instance;
//PropertyInfo prop = type.GetProperties(rb1);
}
// Note: You are going to want to create a List<RadioButton>