Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF组合框如何在启用且另一个字段具有值时将边框变为红色>;0?_Wpf_Combobox_Triggers_Converter - Fatal编程技术网

WPF组合框如何在启用且另一个字段具有值时将边框变为红色>;0?

WPF组合框如何在启用且另一个字段具有值时将边框变为红色>;0?,wpf,combobox,triggers,converter,Wpf,Combobox,Triggers,Converter,如果应用了多个条件,如何将BorderBrush设置为红色 此组合框仅在用户输入的计数大于0时启用,并且在写入数据之前需要进行选择(我不需要默认值)。我已经签入了提示用户选择CountSource的代码。我想要的是有某种多转换器或触发器,或者可以将组合框变成红色,作为用户进行选择的视觉提示。只有当用户在上一个字段(SelectedClientDefaultCount)中输入了大于零的值且尚未选择任何计数源(SelectedClientCountSource=null)时,此转换器/触发器/其他才

如果应用了多个条件,如何将BorderBrush设置为红色

此组合框仅在用户输入的计数大于0时启用,并且在写入数据之前需要进行选择(我不需要默认值)。我已经签入了提示用户选择CountSource的代码。我想要的是有某种多转换器或触发器,或者可以将组合框变成红色,作为用户进行选择的视觉提示。只有当用户在上一个字段(SelectedClientDefaultCount)中输入了大于零的值且尚未选择任何计数源(SelectedClientCountSource=null)时,此转换器/触发器/其他才需要将其变为红色

我试过:

<ComboBox Grid.Row="1" Grid.Column="1"
                              ItemsSource="{Binding ActiveCountSources}" DisplayMemberPath="CountSourceDescription" 
                              SelectedItem="{Binding SelectedClientCountSource}"
                              IsEnabled="{Binding SelectedClientDefaultCount, Converter={StaticResource DefaultCountEnabledConverter}}">
                        <ComboBox.Style>
                            <Style>
                            <Style.Triggers>
                                <MultiDataTrigger>
                                    <MultiDataTrigger.Conditions>
                                        <Condition Binding="{Binding IsEnabled}" Value="True" />
                                    </MultiDataTrigger.Conditions>
                                        <MultiDataTrigger.Setters>
                                            <Setter Property="BorderBrush" Value="Red" />
                                        </MultiDataTrigger.Setters>
                                </MultiDataTrigger>
                            </Style.Triggers>
                            </Style>
                        </ComboBox.Style>
                    </ComboBox>

但它说无法找到或访问BorderBrush。我也不知道如何设置第二个条件来检查SelectedClientDefaultCount是否不为null或大于零


如果可能的话,我不想将其置于组合框xaml之外的样式中。

尝试将样式TargetType设置为“{x:Type combobox}”

  • 设置组合框样式的
    TargetType
  • 将IsEnabled绑定的
    相对资源
    设置为
    Self
  • 在返回布尔值的
    SelectedClientCountSource
    SelectedClientDefaultCount
    绑定中使用绑定转换器


非常感谢!我只需要两个条件,但这向我展示了正确的格式来完成它!
<ComboBox.Style>
    <Style TargetType="ComboBox">
        <Style.Triggers>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding IsEnabled,
                               RelativeSource={RelativeSource Self}}" Value="True"/>
                    <Condition Binding="{Binding SelectedClientCountSource,
                               Converter={StaticResource CountSourceConverter}}"
                               Value="True"/>
                    <Condition Binding="{Binding SelectedClientDefaultCount,
                               Converter={StaticResource DefaultCountEnabledConverter}}"
                               Value="True"/>
               </MultiDataTrigger.Conditions>
                <MultiDataTrigger.Setters>
                    <Setter Property="BorderBrush" Value="Red" />
                </MultiDataTrigger.Setters>
            </MultiDataTrigger>
        </Style.Triggers>
    </Style>
</ComboBox.Style>