如何使 WPF ComboBox 项目可见但不可选择?

How do I make the WPF ComboBox items visible, but non-selectable?

我试图使我的 WPF 组合框的项目可见(最好是灰色)但不允许用户使用 c# 代码 select 它们。

我试过以下方法:

comboBoxName.IsHitTestVisible = false comboBoxName.Focusable = false

但是,这会阻止他们一起看到组合框的内容。如何使内容可见但不能在 c# 中编辑 select?

设置一个项目容器样式,将禁用每个 ComboBoxItem

<ComboBox x:Name="comboBoxName" ItemsSource="{Binding Collection}">
   <ComboBox.ItemContainerStyle>
      <Style TargetType="{x:Type ComboBoxItem}">
         <Setter Property="IsEnabled" Value="False"/>
      </Style>
   </ComboBox.ItemContainerStyle>
</ComboBox>

如果您使用代码隐藏,可以像这样定义和应用项目容器样式。

var itemContainerStyle = new Style(typeof(ComboBoxItem));
var isEnabledSetter = new Setter(IsEnabledProperty, false);

itemContainerStyle.Setters.Add(isEnabledSetter);
comboBoxName.ItemContainerStyle = itemContainerStyle;