【问题标题】:How to disable validation of a combox element when visibility is collapsed?折叠可见性时如何禁用对组合框元素的验证?
【发布时间】:2021-11-03 00:26:53
【问题描述】:

我想在 ComboBox 或 TextBox 的可见性折叠时禁用它们的验证。我可以在 XAML 代码中实现这一点吗?

            <ComboBox Name="XYZCb" ItemsSource="{Binding XYZ}" Visibility="{Binding IsVisible, Converter={StaticResource BoolToVisibilityConverter}}">
                <ComboBox.Text>
                    <Binding Path="xyz" UpdateSourceTrigger="PropertyChanged">
                        <Binding.ValidationRules>
                            <valid:ValidationRule ValidatesOnTargetUpdated="True"/>
                        </Binding.ValidationRules>
                    </Binding>
                </ComboBox.Text>
            </ComboBox>

按钮属性绑定:

<Button.IsEnabled>
    <MultiBinding Converter="{StaticResource InverseAndBooleansToBooleanConverter}"
                  Mode="TwoWay">
        <Binding ElementName="XYZCb" Path="(Validation.HasError)"/> 
    </MultiBinding>
<Button.IsEnabled>

【问题讨论】:

标签: c# wpf visibility validationrules


【解决方案1】:

如果我理解正确你需要什么:

    <Button>
        <Button.Style>
            <Style TargetType="Button">
                <Style.Triggers>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding Path=(Validation.HasError), ElementName=XYZCb}" Value="True"/>
                            <Condition Binding="{Binding Visibility, ElementName=XYZCb}" Value="Visible"/>
                        </MultiDataTrigger.Conditions>
                        <Setter Property="IsEnabled" Value="False"/>
                    </MultiDataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>

不要忘记删除您的 &lt;Button.IsEnabled&gt; 绑定。

【讨论】:

  • 非常感谢。这就是我要找的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
  • 2015-02-09
  • 2020-03-09
  • 2022-01-03
  • 2017-04-25
  • 2021-01-22
相关资源
最近更新 更多