0
我有一个简单的类,ClassA(如下)。是否有可能在我的XAML中继器中,我可以将反射的属性名称绑定到文本框,并且能够将复选框IsChecked绑定到bool属性?所以,我的XAML可能是这样的(这仅仅是伪XAML,不知道这是否是语法正确,并承担ItemsControl的数据上下文为ClassA的):使用反射属性数据的XAML绑定
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding ??? reflected property name as text, e.g., ClassABool1 ??? }"
<CheckBox IsChecked="{Binding ??? somehow bind to the actual property ClassABool1 ???, Mode=TwoWay}"
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
public sealed class ClassA : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private static ClassA _instance;
private ClassA() {}
public static ClassA Instance
{
get
{
if (_instance == null)
{
_instance = new ClassA();
}
return _instance;
}
}
private bool _classABool1;
public bool ClassABool1 { get; set; }
private bool _classABool2;
public bool ClassABool2 { get; set; }
}
我理解数据绑定,但什么后我:是否有可能ItemsControl的的的ItemsSource设置为ClassA的的属性集合。然后文本框将绑定到属性名称。然后,我想要将该复选框绑定到属性值。 因此,在原始示例中,假设它运行,将生成2个数据项,因为ClassA有2个属性,第一个数据项将是'ClassABool1'的文本,后面跟着一个复选框,其IsChecked属性绑定到ClassABool1的值。第二个数据项将是第一个数据项的副本,但使用ClassABool2。谢谢您的帮助。 – 2013-03-07 15:36:52
所以你想要将你的ItemsControl ItemsSource绑定到ClassA的实例,然后显示每个属性的项目? – 2013-03-07 16:15:53
不,ItemsControl源将是ClassA的属性集合,TextBox文本将绑定到Property.Name,并且CheckBox IsChecked会以某种方式绑定到实际属性。因此,如果ClassA上面有两个属性,我的ItemsControl会产生2个“行”:第一个“行”:ClassABool1作为第一个文本框的文本,后面跟着一个复选框,其IsChecked被绑定到ClassABool1。第二个“行”:同样的事情,但与ClassABool2属性。最终,ClassA具有多少属性并不重要,如果ClassA具有20个属性,则对于项目3-20重复该过程。再次感谢! – 2013-03-07 16:29:00