私は WPF アプリケーションを構築し、stackoverflow への投稿のおかげで検証を機能させることができました。私が抱えている唯一の問題は、使用しているテーマをオーバーライドしていることです。たとえば、テーマはテキストボックスを丸い長方形のように見せますが、バインディングを設定した後はデフォルトのテキストボックスのように見えます. ここに私のコードがあります:
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="IsEnabled" Value="false" />
<Style.Triggers>
<!-- Require the controls to be valid in order to press OK -->
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=txtEmail, Path=(Validation.HasError)}" Value="false" />
</MultiDataTrigger.Conditions>
<Setter Property="IsEnabled" Value="true" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
コードビハインドは次のとおりです。
//Form loaded event code
txtEmail.GetBindingExpression(TextBox.TextProperty).UpdateSource();
テーマ ファイルを調べようとしましたが、すぐにわかりませんでした。そのファイルを Web CSS ファイルのように使用できると思いました。そのため、データ バインディングを無効にしました。回避策はありますか? これを読んでくれてありがとう