0

假设我有 MyClass.cs,其中有一个名为 Name 的属性,然后我有我的 viewModel,它继承了 IDataErrorInfo,我在这个 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 中没有这个“名称”属性,它在 MyClass.cs 上,所以我不知道用什么来提供 IDataErrorInfo 列名称,我尝试了 Name 和 MyClass.Name没有成功,有什么建议吗??提前致谢

4

3 回答 3

0

属性的名称。在这种情况下Name

于 2011-07-02T13:22:31.127 回答
0

如果你不确定要放什么,为什么不放一行测试代码,比如 msgbox(columnname)。然后运行您的应用程序(或其中的一部分)并查看弹出的内容。希望这可以帮助。

于 2011-07-02T15:26:13.020 回答
0

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

于 2011-07-03T05:36:34.407 回答