折叠可见性时如何禁用对组合框元素的验证?

Posted

技术标签:

【中文标题】折叠可见性时如何禁用对组合框元素的验证?【英文标题】: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>

【问题讨论】:

这能回答你的问题吗? Stop ValidationRule if ComboBox is Collapsed 我认为这是@Andy 的误解。根据我的理解,collapsed 是指整个组合框的可见性,而不是扩展器。 【参考方案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; 绑定。

【讨论】:

非常感谢。这就是我要找的!

以上是关于折叠可见性时如何禁用对组合框元素的验证?的主要内容,如果未能解决你的问题,请参考以下文章

WPF:尝试根据组合框中的选择更改可见性

extjs 表单元素中的 Extjs 组合框在禁用时未灰显

遍历用户表单中的所有组合框并使用名称进行验证并使它们可见

如何在不选择下拉菜单的情况下折叠/关闭组合框?

如何在访问中禁用组合框上的自动完成功能?

在组合框中选择升序时如何对元素列表进行排序