Получить ComboBox отображаемый текст в WPF - PullRequest
0 голосов
/ 15 февраля 2012

Я пытаюсь добавить всплывающую подсказку в стиль поля со списком (чтобы он применялся ко всем комбинациям в приложении). Я хочу отобразить элемент, отображаемый в данный момент в поле со списком.

В некоторых случаях поля со списком привязываются к сложным объектам (классам), а свойство этого класса устанавливается в качестве элемента отображения, например:

<ComboBox ItemsSource="{Binding Path=SomeDataSource}"
          DisplayMemberPath="PropertyName" />

Также в некоторых случаях я связываю поля со списком со списком строк, и поэтому я не устанавливаю DisplayMemberPath.

Есть ли способ получить текущее отображаемое значение для поля со списком?

Редактировать : предлагаемое ниже решение работает очень хорошо, хотя я сталкиваюсь с проблемами со списками со списком ItemTemplate (эти шаблоны элементов имеют TextBlock с множественным связыванием внутри них).

Поля со списком с ItemTemplate не имеют DisplayMemberPath, поэтому свойство «Текст» поля со списком возвращает SelectedValue.

1 Ответ

1 голос
/ 15 февраля 2012

Попробуйте это:

<Style TargetType="{x:Type ComboBox}">
    <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Text}"/>
</Style>

Возможно, вы захотите добавить конвертер, чтобы отобразить полезную подсказку, когда свойство Text пусто.

Чтобы стиль применялся ко всем комбинированным спискам, поместите его в файл App.xaml.

...