我在ViewModel
中進行了數據驗證。當我加載View
,有效性驗證不改變TextBox
的內容檢查,通過加載錯誤樣式設置爲TextBox
如何停止驗證觸發器在wpf中自動啓動
這裏的觀點意思是代碼:
XAML
<TextBox {...} Text="{Binding Path=ProductName,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"/>
在ViewModel
上,驗證通過數據註釋進行:
Code
private string _productName;
[Required(AllowEmptyStrings = false, ErrorMessage = "The Product Name can't be null or empty.")]
[StringLength(50, ErrorMessage = "The Product Name can't be longer than 50.")]
[Uniqueness(Entities.Product, ErrorMessage = "A Product with that Name already exists ")]
public string ProductName
{
get { return _productName; }
set
{
_productName = value;
SaveProduct.OnCanExecuteChanged();
OnPropertyChanged("ProductName");
}
}
如何在視圖加載時停止驗證觸發?
我不希望TextBox
在插入數據之前顯示錯誤。
AttributeBased驗證有這個問題,直到我知道什麼都不能做Directly.IDataErrorInfo/INotifyDataErrorInfo是更好的選擇,因爲我們從setter中設置它們,並且這個問題不存在,再加上我們可以通過ourelve處理所有事情。 – ethicallogics