2011-07-02 56 views
0

可以說我有MyClass.cs,其中我有一個名爲Name的屬性,然後我有我的viewModel繼承IDataErrorInfo,其中我在此視圖模型中創建多個MyClass實例,並添加它們所有到一個ObservableCollection < MyClass的>,這個集合將是一個DataGrid的ItemsSource時,和它切切實實的一個人的DataGridTextColumn勢必Name屬性,如下面的XAML數據綁定,IDataErrorInfo和命名爲

<DataGridTextColumn Binding="{Binding Name}" Header="Name" IsReadOnly="True" /> 

都好這wrks真的很好,現在我需要提供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都沒有解決,任何建議? 在此先感謝

回答

0

我想通了,我必須有實現IDataErorInfo上MyClass.cs不是在視圖模型

0

屬性的名稱。在這種情況下,它是Name

+0

它不工作,我沒有一個名爲Name屬性,它是我的MyClass場我只是在這裏創建它的一個實例,我在那裏實現IDataErrorInfo,所以沒有這樣的屬性 – Musaab

0

如果您不確定該放在那裏,爲什麼不放置諸如msgbox(columnname)之類的代碼的測試行。然後運行您的應用程序(或其中的一部分)並查看彈出的內容。希望這可以幫助。

+0

感謝您的答案,但我不知道該放什麼的意思是:我已經用「MyClass.Name 「和」名稱「,都不起作用 – Musaab