1

我是 WPF 的新手。我对组合框有这个问题。

当 Combobox 第一次渲染并且没有任何内容可显示时,combobox 的边框必须设置为红色,但不幸的是它没有这样做。

请找到代码片段

<Style x:Key="requiredFieldValidationStyleComboBox">
    <Style.Triggers>
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.Content}" Value="{x:Null}">
            <Setter Property="ComboBox.BorderBrush" Value="{StaticResource FaultyBorderBrush}" />
            <Setter Property="ComboBox.ToolTip" Value="Input value is mandatory" />
        </DataTrigger>
    </Style.Triggers>
</Style>
4

2 回答 2

0

一旦我将您的样式添加到组合框中,我发现您的样式可以完美地工作,请确保组合框实际上设置了它的样式属性,或者如果您希望它适用于所有组合框,请删除 x:Key 属性。

 <Window.Resources>
        <Style x:Key="requiredFieldValidationStyleComboBox">
            <Style.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.Content}" Value="{x:Null}">
                    <Setter Property="ComboBox.BorderBrush" Value="Red" />
                    <Setter Property="ComboBox.ToolTip" Value="Input value is mandatory" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <Grid Margin="0,0,401,279">
        <ComboBox Style="{StaticResource requiredFieldValidationStyleComboBox}" Margin="46,66,-46,-66"/>
    </Grid>

未选择任何内容

已选中

于 2012-11-20T10:59:30.980 回答
0

我不知道您绑定到 selectedItem 的对象是什么。但是我有一种感觉你会问SelectedItem本身是否等于null,那么代码应该是这样的:

<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem}" Value="{x:Null}">
                <Setter Property="ComboBox.BorderBrush" Value="{StaticResource FaultyBorderBrush}" />
                <Setter Property="ComboBox.ToolTip" Value="Input value is mandatory" />
            </DataTrigger>

“内容”是不必要的。

这就是你想要的?

于 2012-11-20T10:09:59.560 回答