假设我有MyClass.cs,其中我有一个名为Name的属性,然后我的viewModel继承了IDataErrorInfo,我在这个viewModel中创建了MyClass的多个实例,并将它们全部添加到ObservableCollection< MyClass的> ,这个集合将是DataGrid的ItemsSource,并且其中一个DataGridTextColumn绑定到Name属性,这个wrk非常好,如下面的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既没有成功,有什么建议吗? 提前致谢
答案 0 :(得分:0)
财产的名称。在这种情况下,它是Name
答案 1 :(得分:0)
如果你不确定放在那里,为什么不放一个代码测试行,如msgbox(columnname)。然后运行您的应用程序(或其中的一部分),看看弹出的内容。希望这会有所帮助。
答案 2 :(得分:0)
我想通了,我必须在MyClass.cs上实现IDataErorInfo而不是在viewModel上