2013-03-05 18 views
7

Ho un ComboBox nella mia applicazione WPF. Usando sottostante Codice posso impostare il ToolTip come valore selezionato:Come impostare il suggerimento del combobox WPF in base al valore selezionato?

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

Ma se ho bisogno di impostare un valore separato per ToolTip sulla base di ComboBox selezione, il seguente codice non funziona:

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

Qualsiasi l'aiuto sarebbe apprezzato, grazie.

+0

A cosa è associato il tuo ComboBox? Un elenco di stringhe? Fuori interesse, provare a utilizzare SelectedItem anziché SelectedValue. –

+0

ho provato entrambi :( – Relativity

risposta

5

non sono sicuro se ho capito bene, ma se si utilizza un Style non si dovrebbe usare un DataTrigger o RelativeSource={RelativeSource Self}}" per accedere SelectedValue, si dovrebbe essere in grado di accedere tramite un Trigger utilizzando il Property

<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

Ho provato questo ... ma non funzionando ... Se metto il seguente setter come predefinito .. mi dà i valori corretti DAW e generico quando li seleziono ... ma all'interno di non funziona. – Relativity

+0

Hai impostato' SelectedvaluePath' sul tuo 'ComboBox' –

+0

no .. Non ho quello – Relativity

2

legano il tooltip per la proprietà di visualizzazione della voce selezionata in questo caso ho la visualizzazione del nome proprietà, se si dispone di elementi ComboBox declaritive allora che sarebbe

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

else per oggetto personalizzato sotto il codice funzionerà

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