Почему всплывающая подсказка не обновляет содержимое при изменении привязки? - PullRequest
0 голосов
/ 16 ноября 2010

Я написал следующий код xaml:

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="200" Width="200">
    <StackPanel>
        <ListBox Name="listBox">
            <ListBoxItem Content="item1" />
            <ListBoxItem Content="item2" />
            <ListBoxItem Content="item3" />
        </ListBox>

        <TextBlock DataContext="{Binding ElementName=listBox, Path=SelectedItem}" Text="{Binding Content}" ToolTip="{Binding Content}" />

        <TextBlock DataContext="{Binding ElementName=listBox, Path=SelectedItem}" Text="{Binding Content}">
            <TextBlock.ToolTip>     
                <ToolTip Content="{Binding Content}"/>              
            </TextBlock.ToolTip>
        </TextBlock>
    </StackPanel>
</Window>

Почему первая подсказка всегда имеет тот же текст, что и ее родительский TextBlock, а вторая никогда не меняет своего содержимого, когда я изменяю выбранный элемент в listBox?

1 Ответ

3 голосов
/ 16 ноября 2010

Во втором примере вы устанавливаете всплывающую подсказку TextBlock как всплывающую подсказку.Таким образом, вы фактически устанавливаете Content ToolTip как другую ToolTip.Это будет то же самое, что и первое.

<TextBlock DataContext="{Binding ElementName=listBox, Path=SelectedItem}" Text="{Binding Content}" ToolTip="{Binding Content}" />
<TextBlock DataContext="{Binding ElementName=listBox, Path=SelectedItem}" Text="{Binding Content}"> 
    <TextBlock.ToolTip>      
        <Binding Path="Content"/>               
    </TextBlock.ToolTip>
</TextBlock>

И это будет в значительной степени то же самое, что и последнее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...