TextBox, не работает привязка в ToolTip
Простейший код WPF, изучаю Binding:
<TextBox x:Name="PathTextBox" TextWrapping="NoWrap" Text="D:\[Kawaiika-Raws] (2013) Shingeki no Kyojin S1 [BDRip 1920x1080 HEVC FLAC]\Bonus\Scans" Width="300" VerticalAlignment="Top" Margin="10,5,10,0" Height="20" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" IsReadOnly="true" Background="{x:Null}">
<TextBox.ToolTip>
<ToolTip>
<TextBlock Text="{Binding Text, ElementName=PathTextBox}" />
</ToolTip>
</TextBox.ToolTip>
</TextBox>
В итоге при наведении мышки наTextBox я получаю такой результат, как на картинке.
Почему не работает привязка? Эта строка {Binding Text, ElementName=PathTextBox}в контексте привязки к другим элементам управления вроде текста другого TextBox или Label работает прекрасно, а в ToolTip не хочет. Что я пропускаю?
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
ToolTip не является частью визуального дерева, поэтому привязка по ElementName или RelativeSource не сработает. Но если вам нужен просто текст, то можно проще.
<TextBox Text="..."
...
ToolTip="{Binding Text, RelativeSource={RelativeSource Self}}" />
Ну либо через PlacementTarget
<TextBox Text="...">
<TextBox.ToolTip>
<ToolTip DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}">
<TextBlock Text="{Binding Text}" />
</ToolTip>
</TextBox.ToolTip>
</TextBox>
Кстати, тот же самый фокус вас ждет с ContextMenu и Popup.