をチェックすると、私はDataAnnotationsとMVVMデザインパターンを実装したアプリケーションに取り組んでいます。アプリケーションは動的に生成されたページのリストです。これらのページの1つに、2つのはい/いいえラジオボタン付きの必須フィールドが10つあります。これらの10のフィールドは2つのグループに分けられ、各グループは境界タグでwwappedされます。各ボーダーの可視性は、非表示/非表示のラジオボタンにバインドされています。WPF/XAML - ValidatesOnDataErrorsを設定するDataTriggers =真/偽のラジオボタンが
質問が選択され、関連する5つの必須テキストボックスが表示されます。ValidatesOnDataErrorsをfalse/trueに設定し、その他の非表示の必須TextBoxesのテキストボックス値をクリアするにはどうすればよいですか?ここで
は、コードスニペットです。
おかげ
<Border>
<Border.Style>
<Style>
<Setter Property="Border.Visibility" Value="Hidden"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=PresentlyEmployed_yes, Path=IsChecked}"
Value="True">
<Setter Property="Border.Visibility" Value="Visible"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Grid Height="Auto" Width="Auto">
<Label Name="JobTitle"
Content="{x:Static properties:Resources.JobTitlelbl}" />
<TextBox Name="JobTitle" Text="{Binding JobTitle, Mode=TwoWay,
ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Text" Value="{Binding PrimaryInsuredBusinessDuties, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged, IsAsync=True}" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=PresentlyEmployed_yes, Path=IsChecked}"
Value="True">
<Setter Property="Text" Value="{Binding JobTitle, Mode=TwoWay,
ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=PresentlyEmployed_yes, Path=IsChecked}"
Value="False">
<Setter Property="Text" Value="{Binding JobTitle, Mode=TwoWay,
ValidatesOnDataErrors=False, UpdateSourceTrigger=PropertyChanged}"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</Grid>
</Border>
は、なぜあなたはちょうどなし 'Text'値を再バインドしていない検証エラーを表示してはならない場合
{x:Null}
にValidation.Template
を設定してみてくださいあなたのトリガの 'ValidatesOnDataErrors'? – Rachel私はそれを試み、それは仕事をしなかった。問題はValidatesOnDataErrorsたらTrueに設定し、私は ValidatesOnDataErrorsでそれを再バインドしようとする= FalseのかValidatesOnDataErrorsアウトまたは私は何にバインドいけない場合でも、それは検証を削除しないdosntされていることです。ここに私のプロパティがどのように見えるかです:[必須(にErrorMessage = "!必須フィールド")] パブリック文字列JobTitle { { リターンを_jobTitle取得します。 }は{ _jobTitle =値を設定します。 BindingSourceが変更されていないので、おそらくそれは、UIを更新していない }} おかげで、 – Bobby
。プロパティの再バインドに加えて、 'RadioButton'が変更されたときにViewModelの' PropertyChanged'イベントを発生させてみてください。 – Rachel