私の WPF アプリケーションでは、TextBox の ValidationRules を作成して、正常に機能する空の文字列を許可しないようにし、空にすることはできないことをユーザーに伝えるテキストで赤い境界線を表示します。アプリケーションが起動すると、すべてのフィールドが入力待ちの空白になっていますが、まだそれらの周りに赤い境界線が表示されています。これは正常な動作ですか?注:フォームが最初にロードされたときではなく、ユーザーがフォームを使用しているときに、propertychangeイベントまたはlostfocusイベントのいずれかが発生した後に発生することをお勧めします。
私が行っている検証の例:
<TextBox x:Name="itemNum" HorizontalAlignment="Left" Height="23" Margin="82,58,0,0" VerticalAlignment="Top" Width="90"
HorizontalContentAlignment="Left" VerticalContentAlignment="Center" PreviewKeyDown="ItemNum_PreviewKeyDown"
PreviewTextInput="ItemNum_PreviewTextInput" TabIndex="0" Validation.ErrorTemplate="{StaticResource validationErrorTemplate}">
<TextBox.Text>
<Binding Path="rxID" Mode="TwoWay" StringFormat="{}{0:#}" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<MY:TextBoxNotEmptyValidationRule x:Name="rxIDValidation" ValidatesOnTargetUpdated="True" />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
私の TextBoxNotEmptyValidationRule クラス:
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
string str = value as string;
if (string.IsNullOrEmpty(str))
{
return new ValidationResult(false, "Value CAN NOT BE empty");
}
return ValidationResult.ValidResult;
}