Как получить привязку ToolTip для работы с ComboBox?
В настоящее время у меня есть ComboBox, который определяется как:
<ComboBox Name="comboItems" ItemsSource="{Binding Path=EnumDataItems}"
DisplayMemberPath="Description"
ToolTip="{Binding Path=ToolTip}" // never displays the value
SelectedValuePath="Value" SelectedValue="{Binding Path=Value}" />
Все работает, кроме всплывающей подсказки. Свойство, к которому он должен привязываться; ToolTip
содержит значение. Я уверен в этом, потому что, когда я делаю следующее, я вижу результат, подтверждающий, что ToolTip содержит значение:
<ComboBox Name="comboItems" ItemsSource="{Binding Path=EnumDataItems}"
DisplayMemberPath="ToolTip" // I replaced 'Description' with 'ToolTip'
ToolTip="{Binding Path=ToolTip}"
SelectedValuePath="Value" SelectedValue="{Binding Path=Value}"/>
Заменив Description
на ToolTip
, я вижу, что значение ToolTip появляется на экране. Однако
ToolTip="{Binding Path=ToolTip}"
все еще не работает. Если я попытаюсь отобразить подсказку следующим образом:
ToolTip="ToolTip"
он просто отображает слово "ToolTip".
Как я могу получить ToolTip
для отображения значения?
Ответы
Ответ 1
ToolTip="{Binding Path=ToolTip}"
привязывается к свойству ToolTip
текущего комбинированного блока DataContext
(объект, который содержит свойство EnumDataItems
).
Предполагая, что вы хотите установить ToolTip
of ComboBox
на текущий выбранный элемент ToolTip
значение свойства, это должно устранить проблему:
ToolTip="{Binding Path=SelectedItem.ToolTip, RelativeSource={RelativeSource Self}}"
Ответ 2
Если a ToolTip
для каждого ComboBoxItem
- это то, что вы хотите, вы можете сделать это:
<ComboBox.ItemContainerStyle>
<Style>
<Setter Property="Control.ToolTip" Value="{Binding ToolTip}" />
</Style>
</ComboBox.ItemContainerStyle>