사용자의 이름을 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));
}