仅包含一项的WPF组合框

仅包含一项的WPF组合框,wpf,combobox,Wpf,Combobox,如何以不同的方式显示只有一个项目的WPF组合框?当只有一个项目时,有可能选择一个元素是没有意义的。因此,我们希望只显示该项,而不是组合框 换句话说,,当源集合中只有一个项目时,组合框应该隐藏,并且应该显示第一个项目。您可以使用DataTrigger定义样式,当组合框中只有一个项目时,该样式将模板属性设置为自定义控制模板项目集合: <ComboBox ItemsSource="{Binding Items}"> <ComboBox.Style>

如何以不同的方式显示只有一个项目的WPF组合框?当只有一个项目时,有可能选择一个元素是没有意义的。因此,我们希望只显示该项,而不是组合框


换句话说,,当源集合中只有一个项目时,组合框应该隐藏,并且应该显示第一个项目。

您可以使用
DataTrigger
定义
样式
,当
组合框中只有一个项目时,该样式将
模板
属性设置为自定义
控制模板
项目
集合:

<ComboBox ItemsSource="{Binding Items}">
    <ComboBox.Style>
        <Style TargetType="ComboBox">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Items.Count, RelativeSource={RelativeSource Self}}" Value="1">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="ComboBox">
                                <ContentControl Content="{Binding Items[0], RelativeSource={RelativeSource AncestorType=ComboBox}}" />
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ComboBox.Style>
</ComboBox>

@TWT:你试过这个吗?