我試圖禁用TextBox上的ValidatesOnDataErrors,如果某個複選框被選中。 我曾嘗試在文本框上放置一個觸發器來啓用或禁用基於複選框的驗證,好像觸發器被擊中但不禁用驗證。我正在使用IDataErrorInfo驗證.cs代碼。這裏是我嘗試過的代碼,這是一個令人頭疼的問題,所以希望你能提供幫助。如果CheckBox被選中,禁用ValidatesOnDataErrors WPF
的.xaml
<TextBox Name="txtFoundERTReading" Height="23" Canvas.Left="125" TextWrapping="Wrap" Canvas.Top="136" Width="120">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=cbFoundERTReading, Path=IsChecked}" Value="False">
<Setter Property="Text" Value="{Binding Found.ERTReading, Mode=TwoWay, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=cbFoundERTReading, Path=IsChecked}" Value="True">
<Setter Property="TextBox.IsEnabled" Value="False" />
<Setter Property="Text" Value="{Binding Found.ERTReading, Mode=TwoWay, ValidatesOnDataErrors=False, UpdateSourceTrigger=PropertyChanged}" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
感謝很多的快速回復。我有5個文本框,每個文本框都有相應的複選框。我討厭有5個布爾屬性檢查每個文本框?有沒有辦法避免這種情況? 5個文本框是必需的,除非您點擊一個複選框,指出「無法讀取」,即當我想禁用驗證並從文本框邊框(由ValidatesOnDataError引起)中移除紅色時。 –