2013-03-05 14 views
7

Ich habe eine ComboBox in meiner WPF-Anwendung. Mit folgendem Code kann ich die ToolTip als gewählten Wert gesetzt:Wie wird der Tooltip der WPF-Combobox basierend auf dem ausgewählten Wert festgelegt?

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

Aber wenn ich einen separaten Wert für ToolTip basierend festlegen muß auf ComboBox Auswahl wird der folgende Code nicht funktioniert:

<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> 

Beliebig Hilfe wäre dankbar, danke.

+0

Was ist Ihr ComboBox gebunden ist? Eine Liste von Zeichenfolgen? Versuchen Sie es mit SelectedItem anstatt SelectedValue. –

+0

Ich habe beide versucht :( – Relativity

Antwort

5

Ich bin mir nicht sicher, ob ich das richtig verstehen, aber wenn Sie ein Style verwenden, sollten Sie nicht SelectedValue verwenden, um ein DataTrigger oder RelativeSource={RelativeSource Self}}" zugreifen kann, sollten Sie in der Lage sein, über ein Trigger den Zugriff auf die Property

mit
<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> 
+0

Ich habe das versucht ... aber nicht funktioniert ... Wenn ich den folgenden Setter als Standard setzen .. es gibt mir die richtigen Werte DAW und generisch, wenn ich sie auswähle ... aber innerhalb der funktioniert es nicht. – Relativity

+0

Haben Sie' SelectedvaluePath' auf Ihrer 'ComboBox' gesetzt –

+0

nein. ich habe das nicht – Relativity

2

binden die Tooltip an die Anzeigeeigenschaft des ausgewählten Elements in diesem Fall i Eigenschaftsnamen-Anzeige haben, wenn Sie declaritive Combobox Elemente haben dann wäre das

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

sonst für benutzerdefiniertes Objekt unter Code

arbeiten
<ComboBox 
    Name="cmbbox_years" 
    DisplayMemberPath="display" 
    SelectedValuePath="value" 
    ItemsSource="{Binding Years}" 
    SelectedItem="{Binding YearSelectedItem}" 
    ToolTip="{Binding Path=SelectedItem.display,ElementName=cmbbox_years}"/> 
Verwandte Themen