2013-10-16 97 views
4

我在WPF中使用INotifyDataError接口進行異步驗證。我有一個屬性嵌套屬性和INotifyDataErrorInfo的正確屬性名稱

<TextBox Grid.Column="5" 
     Text="{Binding XXX.Name, ValidatesOnNotifyDataErrors=True}"/> 

在我的視圖模型我有一個屬性

public SomeType XXX 

和類型SOMETYPE我的財產

public string Name 

現在我的ViewModel實現INotifyPropertyChanged和INotifyDataError和驗證是在我的viewmodel類中異步完成的。 SomeType只實現INotifyPropertyChanged。

我的問題是這樣的。當我通過DataErrorsChangedEventArgs(propertyName))提升ErrorsChanged事件時,propertyName應該是什麼。注意我的綁定路徑是XXX.Name。應該PROPERTYNAME是

  • XXX.Name
  • 名稱

或別的東西或我要在我的SomeType類中實現INotifyDataErrorInfo以及我希望不要有做,因爲我想我的驗證留在主視圖模型中。

無論如何,我已經嘗試了上述和文本框沒有得到一個紅色的框,雖然我可以驗證錯誤事件正在提出。

回答

3

afaik我會說你必須在你的SomeType類中爲你的屬性XXX實現IDataErrorInfo,因爲你綁定了它。我在我的項目中這樣做,它的工作原理。

+3

但是,如果它是一個類,你不能實現INotifyDataErrorInfo。爲了參數,讓我們說標準的''Point''類。如果我分別爲「X」和「Y」字段分別設置文本框,我將如何通過INotifyDataErrorInfo提供驗證反饋? – bradgonesurfing