9

私はComboBox自分の WPF アプリケーションに を持っています。以下のコードを使用してToolTip、選択した値として設定できます。

ToolTip="{Binding Path=SelectedValue, RelativeSource={RelativeSource Self}}" 

ToolTipしかし、選択に基づいて別の値を設定する必要がある場合ComboBox、次のコードは機能しません。

<controls:ComboBoxEx.Style>
    <Style TargetType="ComboBox" BasedOn="{StaticResource basicStyle}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=SelectedValue, RelativeSource={RelativeSource Self}}" Value="DAW">
                <Setter Property="ToolTip" Value="abc"/>
            </DataTrigger>

            <DataTrigger Binding="{Binding Path=SelectedValue, RelativeSource={RelativeSource Self}}" Value="generic">
                <Setter Property="ToolTip" Value="def"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</controls:ComboBoxEx.Style>
4

2 に答える 2

6

正しく理解しているかどうかはわかりませんが、を使用している場合は、またはを使用してアクセスStyleする必要はありません。を使用してアクセスできるはずです。DataTriggerRelativeSource={RelativeSource Self}}"SelectedValueTriggerProperty

<Style TargetType="ComboBox">
    <Style.Triggers>
        <Trigger Property="SelectedValue"  Value="DAW">
            <Setter Property="ToolTip" Value="abc"/>
        </Trigger>
        <Trigger Property="SelectedValue" Value="generic">
            <Setter Property="ToolTip" Value="def"/>
        </Trigger>
    </Style.Triggers>
</Style>
于 2013-03-05T23:50:19.363 に答える
2

この場合、ツールチップを選択したアイテムの表示プロパティにバインドします。プロパティ名が表示されます。宣言的な ComboBox アイテムがある場合は、次のようになります。

ToolTip="{Binding Path=SelectedItem.Content,ElementName=cmbbox_years}"

コードの下のカスタムオブジェクトの Else は機能します

<ComboBox 
  Name="cmbbox_years" 
  DisplayMemberPath="display" 
  SelectedValuePath="value"
  ItemsSource="{Binding Years}" 
  SelectedItem="{Binding YearSelectedItem}" 
  ToolTip="{Binding Path=SelectedItem.display,ElementName=cmbbox_years}"/>
于 2013-03-06T06:32:17.777 に答える