2010-05-21 87 views
0

*是否可能通過IDataErrorInfo或INotifyDataErrorInfo **產生驗證錯誤(由綁定源產生)而不訪問數據源*?TextBox數據綁定驗證

重點是獲取將要顯示的錯誤消息。

預先感謝您。

編輯:「沒有訪問數據源」意味着我不想通過在數據源上實現IDataErrorInfo接口的屬性來獲取錯誤消息。

回答

2

不知道你的意思「而無需訪問數據源」,但你也可以訪問錯誤通過與

{Binding RelativeSource={RelativeSource Self},Path=(Validation.Errors)[0].ErrorContent} 

綁定要知道,如果沒有錯誤,這將引發例外。因此,根據您想要執行的操作,檢查「Validation.HasErrors」屬性是否存在錯誤。

還要檢查如何正確地做到這一點this example

+0

OK幫助。我實際上需要獲取表單代碼的錯誤,但是您的回答給了我一些有用的指導,謝謝。 – Koynov 2010-05-25 06:51:19

1

「而無需訪問數據源」意味着你可以看到集創建{...}由商業類國有產權部分驗證錯誤。例如。我們有Person類:

public class Person 
{ 
string firstName; 
public string FirstName 
{ 
get{return firstName;} 
set 
{ 
if (String.IsNullOrEmpty(value)) 
throw new Exception("First name should be provided!"); 
firstName = value; 
} 
} 
} 

類似的東西