我想让一个按钮的 IsEnabled 仅在两个文本框没有任何错误时才为真(在这种情况下,我只希望它们都是数字)
我尝试将文本框设置为 NotifyOnValidationError=True,认为这会引发一个异常,该异常会冒泡到容器控件 - 然后我会根据属于该控件的 Validation.HasError 附加属性将按钮的 IsEnabled 设置为 true
我尝试了以下(去除了格式化代码),但它不起作用(当我第一次启动应用程序并且文本框为空时启用了按钮 - 它们绑定到可为空的小数)
<WrapPanel>
<TextBox x:Name="txtDeltaMin"Text="{Binding Path=DeltaMinFilter, NotifyOnValidationError=True, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}"></TextBox>
<TextBox x:Name="txtDeltaMax" Text="{Binding Path=DeltaMaxFilter, NotifyOnValidationError=True, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}"></TextBox>
<Button x:Name="btnUpdateFilter" Click="btnUpdateFilter_Click" IsEnabled="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type WrapPanel}}, Path=(Validation.HasError)}">Filter</Button>
</WrapPanel>