Как сделать элементы WPF ComboBox видимыми, но не доступными для выбора? - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь сделать элементы моего ComboBox WPF видимыми (желательно серым), но не позволяю пользователю выбирать их с помощью кода c#.

Я пробовал следующее:

comboBoxName.IsHitTestVisible = false comboBoxName.Focusable = false

Однако это не позволяет им видеть все содержимое comboBox. Как сделать содержимое видимым, но его нельзя выбрать в c#?

1 Ответ

2 голосов
/ 09 июля 2020

Установите стиль контейнера элементов, который отключит каждый 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;
...