0
我正在創建一個應用程序,用戶名必須輸入到textBox
。我暫停了一個教程來做到這一點。但是,當我點擊按鈕來驗證textBox
,並且我沒有輸入名稱時,我沒有收到驗證錯誤,提示「必須輸入姓名」。相反,我必須在textBox
中輸入文本,然後刪除文本,然後單擊按鈕獲取錯誤消息。我認爲這是因爲我使用OnProperyChanged
方法完成了它。有沒有一種方法可以驗證我的textBox
,而無需先輸入文本然後刪除文本?驗證文本框wpf
我的代碼休耕
XAML
<TextBox.Text>
<Binding Path="Name" Mode="TwoWay" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<local:NameValidator></local:NameValidator>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
NameValidator.cs
public class NameValidator : ValidationRule
{
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
if (value.ToString().Length ==0)
return new ValidationResult(false, "value cannot be empty.");
else
{
if (value.ToString().Length > 3)
return new ValidationResult(false, "Name cannot be more than 3 characters long.");
}
return ValidationResult.ValidResult;
}
}
xaml.cs
if (!Validation.GetHasError(tbxName))
{
// do the proicessing
}
private void OnPropertyChanged(string property)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(property));
}