数据绑定,IDataErrorInfo和复杂属性命名

时间:2011-07-02 13:19:57

标签: c# .net wpf mvvm idataerrorinfo

假设我有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既没有成功,有什么建议吗? 提前致谢

3 个答案:

答案 0 :(得分:0)

财产的名称。在这种情况下,它是Name

答案 1 :(得分:0)

如果你不确定放在那里,为什么不放一个代码测试行,如msgbox(columnname)。然后运行您的应用程序(或其中的一部分),看看弹出的内容。希望这会有所帮助。

答案 2 :(得分:0)

我想通了,我必须在MyClass.cs上实现IDataErorInfo而不是在viewModel上