为什么工具提示在绑定更改时不会更新它的内容?

时间:2010-11-15 23:38:31

标签: c# .net wpf xaml

我写了以下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 个答案:

答案 0 :(得分:3)

在第二个示例中,您将TextBlock的工具提示设置为工具提示。因此,您实际上将工具提示的内容设置为另一个工具提示。这些与第一个相同。

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

这些与最后的

几乎相同
<Window.Resources>
    <ToolTip x:Key="MyToolTip" Content="{Binding Content}"/>
</Window.Resources>

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