나는 WPF 응용 프로그램에 체크 상자와 텍스트 상자가있는 UI가 있습니다. 확인란과 텍스트 상자는 내 비즈니스 개체의 속성에 바인딩됩니다. 나는 유효성 검사 규칙을 사용하여 사용자 입력의 유효성을 검증 해 왔으며, 대부분의 경우 값이 null/empty가 아닌지 확인하고 값이 특정 범위 내에 있는지 확인하는 등 매우 간단합니다. FWIW, 여기에 기존 XAML의 :WPF의 텍스트 상자에 대한 조건부 유효성 검사 규칙은 무엇입니까?
<StackPanel>
<CheckBox x:Name="requirePinNumberCheckBox" IsChecked="{Binding Path=RequirePinNumber, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">Require PIN number</CheckBox>
<TextBox x:Name="pinNumberTextBox" Style="{StaticResource textBoxInError}" PreviewTextInput="pinNumberTextBox_PreviewTextInput">
<TextBox.Text>
<Binding Path="PinNumber" Mode="TwoWay" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<local:PinNumberValidationRule ValidationStep="RawProposedValue"/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
</StackPanel>
텍스트 상자에 대한 나의 유효성 검사 규칙은 간단하다 :
내 다른 검증 대부분의 시나리오와는 달리public class PinNumberValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
// make sure that the PIN number isn't blank
if (string.IsNullOrEmpty(value.ToString()))
{
return new ValidationResult(false, "PIN number cannot be blank.");
}
else
{
return new ValidationResult(true, null);
}
}
}
, 텍스트 상자의 ValidationRule는 만는 경우에 적용해야 확인란이 선택되어 있는지 확인합니다 (또는 확인란이 바인딩 된 부울 속성이 TRUE로 설정된 경우). 아무도 이런 식으로 뭔가를 구현하는 방법을 말해 줄래? 감사!