Подтвердить что ты не робот

Как получить привязку 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 для отображения значения?

4b9b3361

Ответ 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>