2012-02-15 3 views
0

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

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

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

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

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

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

В комбинированных блоках с ItemTemplate нет DisplayMemberPath, поэтому свойство «Текст» в поле со списком возвращает SelectedValue.

ответ

1

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

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

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

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

+0

Большое спасибо! WorksForMe (TM). –

+0

С последним тестированием кажется, что он отображает SelectedValue, а не текст. Вместо этого я хочу, чтобы отображаемый текст отображался как всплывающая подсказка. –

+0

Я не уверен, что понимаю. Если вы привязываетесь к списку строк, то выбранным значением является отображаемый текст. – Phil

Смежные вопросы