2013-03-05 69 views
7

我在我的WPF應用程序中有一個ComboBox。使用下面的代碼,我可以設置ToolTip爲所選值:如何根據選定的值設置WPF組合框的工具提示?

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

但是,如果我需要爲基於ComboBox選擇ToolTip設置單獨的值,下面的代碼是不工作:

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

任何將不勝感激,謝謝。

+0

你的ComboBox綁定到什麼?一串字符串?出於興趣,嘗試使用SelectedItem而不是SelectedValue。 – 2013-03-05 23:48:14

+0

我嘗試了他們兩個:( – Relativity 2013-03-05 23:50:15

回答

5

我不知道如果我理解正確的,但如果您使用的是Style你不應該使用DataTriggerRelativeSource={RelativeSource Self}}"訪問SelectedValue,你應該能夠使用Property

通過 Trigger訪問
<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

我試過這個......但不工作......如果我把下面的setter作爲默認 ..它引導我正確的值DAW和通用的時候,我選擇它們...但在它不起作用。 – Relativity 2013-03-05 23:57:49

+0

你有'SelectedvaluePath'設置您的'ComboBox' – 2013-03-06 00:11:54

+0

沒有..我沒有那 – Relativity 2013-03-06 00:14:12

2

綁定工具提示中所選項目的在這種情況下,顯示財產,我有屬性名稱顯示,如果你有declaritive組合框的項目,那麼這將是

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

其他自定義對象下面的代碼將工作

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