数据绑定、IDataErrorInfo和复杂属性命名
本文关键字:属性 复杂 IDataErrorInfo 数据绑定 | 更新日期: 2023-09-27 18:01:01
假设我有MyClass.cs,其中有一个名为Name的属性,然后我有一个继承IDataErrorInfo的viewModel,我在这个viewModel中创建了MyClass的多个实例,并将它们全部添加到ObservableCollection<MyClass>,这个集合将是DataGrid的ItemsSource,并且它的一个DataGridTextColumn绑定到Name属性,这真的很好,就像下面的XAML 一样
<DataGridTextColumn Binding="{Binding Name}" Header="Name" IsReadOnly="True" />
一切都好,现在我需要为IDataErrorInfo提供一个列名,如下
string IDataErrorInfo.this[string columnName]
{
get
{
string error = String.Empty;
switch (columnName)
{
case "WhatToPutHere":
error = validateName();
return error;
default:
throw new ApplicationException("Wrong Property name being validated");
}
}
}
问题是,我的viewModel中没有这个"Name"属性,它在MyClass.cs上,所以我不知道该用什么来提供IDataErrorInfo列名,我尝试了Name和MyClass。Name都不起作用,有什么建议吗??提前感谢
属性的名称。在这种情况下,它是Name
如果你不确定在那里放什么,为什么不放一行测试代码,比如msgbox(列名(。然后运行你的应用程序(或部分应用程序(,看看会弹出什么。希望这能有所帮助。
我想明白了,我必须在MyClass.cs上实现IDataErorInfo,而不是在viewModel 上