2011-07-02 4 views
0

이라면 이름이라는 속성이있는 MyClass.cs가 있다고 말하면서이 viewModel의 MyClass의 다중 인스턴스를 만든 IDataErrorInfo를 상속 한 내 viewModel을 가지고 추가했습니다 ObservableCollection에 < MyClass에>에 모두가이 컬렉션에서는 DataGrid의 ItemsSource 될 것이며, 그 기분이 언짢아 한 지금, DataGridTextColumn 재산의 이름을 수밖에 없다 좋은 다음 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의 "Name"속성이 없습니다. MyClass.cs에 IDataErrorInfo 열 이름을 제공해야할지 모르겠으므로 Name 및 MyClass.Name 모두 해결되지 않았다. 미리 감사드립니다.

답변

0

은 내가 뷰 모델에없는 MyClass.cs 거기에 IDataErorInfo을 구현했다, 그것을 알아 냈다

가 작동하지 않습니다
0

재산의 이름입니다. 이 경우에는 Name

+0

, 나는, 내가 'MyClass에 필드 이름이라는 속성을 가지고하지 않습니다 여기에 IDataErrorInfo를 구현하는 인스턴스를 만들었으므로 그런 속성이 없습니다. – Musaab

0

무엇을 넣을 지 잘 모르는 경우 msgbox (columnname)와 같은 테스트 라인을 삽입하지 않는 것이 좋습니다. 그런 다음 애플리케이션 (또는 애플리케이션의 일부)을 실행하고 팝업이 표시되는지 확인합니다. 희망이 도움이됩니다.

+0

답장을 보내 주셔서 감사합니다.하지만 무엇을 넣을 지 모르겠습니다. "MyClass.Name "및"Name "과 함께 작동하지 않습니다. – Musaab