2016-07-20 5 views
1

У меня проблема при попытке привязки от combobox к всплывающей подсказке. Я хочу привязать SelectedValue к всплывающей подсказке и добавить строку перед SelectedValue во всплывающей подсказке. EX: SelectedValue: ID_001. Tooltip = Ваш ID: ID_001. Мой XAML:Как связать combobox с tooltip wpf

<ComboBox ToolTip="{Binding ElementName=cbb_ma_kh, Path=SelectedValue}" 
      Height="32" 
      Margin="115,39,24,0" 
      Name="cbb_ma_kh" 
      VerticalAlignment="Top" 
      Grid.ColumnSpan="2" /> 

Большое спасибо

+1

Возможный дубликат [Как получить ToolTip связывание работать с ComboBox?] (Http://stackoverflow.com/questions/11259479/how-to-get-tooltip-binding-to-work-with -a-combobox) – ViVi

+0

Это не ответ, я ищу – cptJack44

+0

Вы используете ItemSource? Если да, если это сложный объект, вы, вероятно, должны указать SelectedValuePath. Чтобы привязать строку к выбранному значению комбо и привязать его к всплывающей подсказке, вы можете использовать конвертер. – CiccioRocca

ответ

1

Как указывается в комментариях, самым простым решением было бы конвертер предварять текст.

<ComboBox 
    ItemsSource="{Binding Ids}" 
    ToolTip="{Binding SelectedValue, 
         RelativeSource={RelativeSource Self}, 
         Converter={StaticResource StringConverter}}"   
    ... 
    > 

Построение строки в XAML несколько сложнее. ElementName и RelativeSource больше не работают, когда вы попадаете в <ComboBox.ToolTip> ... </ComboBox.ToolTip>. Таким образом, вам придется привязать SelectedValue к вашему DataContext для доступа к нему позже.

<ComboBox 
    ItemsSource="{Binding Ids}" 
    SelectedValue="{Binding SelectedIdValue}" 
    ... 
    > 
    <ComboBox.ToolTip> 
     <ToolTip 
      Content="{Binding SelectedIdValue}" 
      ContentStringFormat="Your ID: {0}" 
      /> 
    </ComboBox.ToolTip> 
</ComboBox> 
Смежные вопросы