16

現在、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}"/>

に置き換えDescriptionToolTipところ、ToolTipの値が画面に表示されていることがわかります。でも

ToolTip="{Binding Path=ToolTip}"

まだ動作しません。ツールチップを次のように表示しようとすると、次のようになります。

ToolTip="ToolTip" 

「ToolTip」という単語が表示されるだけです。

どうすればToolTip値を表示できますか?

4

2 に答える 2

37

ToolTipfor everyが必要な場合は、次のComboBoxItemことができます。

<ComboBox.ItemContainerStyle>
    <Style>
        <Setter Property="Control.ToolTip" Value="{Binding ToolTip}" />
    </Style>
</ComboBox.ItemContainerStyle>
于 2012-06-29T09:51:36.480 に答える
24

ToolTip="{Binding Path=ToolTip}"ToolTip現在のコンボ ボックスのプロパティDataContext(プロパティを含むオブジェクト)にバインドしますEnumDataItems。現在選択されているアイテムのToolTipプロパティ値に設定したいと仮定すると、これで問題が解決するはずです:ComboBoxToolTip

ToolTip="{Binding Path=SelectedItem.ToolTip, RelativeSource={RelativeSource Self}}"
于 2012-06-29T09:52:42.673 に答える