Я размышляю о том, как WPF ComboBox
показывает пустое значение, как будто ничего не выбрано, если для IsEnabled
установлено значение false. Как всегда, я пытаюсь сделать это, не пересматривая весь шаблон управления для ComboBox
, который всегда является борьбой с WPF. Если у кого-то есть решения, более элегантные, чем переопределение всего шаблона управления ComboBox
, пожалуйста, дайте мне знать.WPF ComboBox, который ничего не отображает при отключении (IsEnabled == false)
Причина в том, что я пытаюсь сделать, так это то, что у меня есть CheckBox
, который представляет собой опцию «Все», и когда этот флажок установлен, он отключает ComboBox
, который используется для выбора только одного отдельного элемента. Если мой CheckBox
проверен, иногда пользователи сбивают с толку, чтобы увидеть значение, оставшееся в ComboBox
, поскольку это значение не имеет смысла в этом состоянии пользовательского интерфейса.
Другим требованием является то, что решение не может изменить SelectedValue
, SelectedIndex
или SelectedItem
значения ComboBox
, так как я хотел бы сохранить previuosly выбранный элемент в том случае, когда пользователи неустановленными «Все» CheckBox
.
Решение на основе ответа HCL в:
<ComboBox IsEnabled="{Binding ElementName=myCheckBox, Path=IsChecked}"
ItemsSource="{Binding Path=MyItems}"
SelectedValue="{Binding Path=MySelectedItem}">
<ComboBox.ItemTemplate>
<DataTemplate>
<ContentControl x:Name="content" Content="{Binding MyItemDescription}" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=ComboBox}, Path=IsEnabled}"
Value="False">
<Setter TargetName="content"
Property="Visibility"
Value="Hidden" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
К сожалению, это не сработало в моих тестах, хотя возможно, что у меня что-то не так. Мне понравилась простота больше, чем указание ItemTemplate. – jpierson
В попытке выяснить, действительно ли этот метод возможен, я наткнулся на этот пост на форумах MSDN, который кажется довольно интересным. http://social.msdn.microsoft.com/Forums/en/wpf/thread/4c359378-ba98-42a1-a468-0f18f5626fcc – jpierson