开发者

Why tooltip doesn't update it's content when binding changes?

I have written following xaml code:

<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}"/&g开发者_开发知识库t;              
            </TextBlock.ToolTip>
        </TextBlock>
    </StackPanel>
</Window>

Why first tooltip always has the same text as it's parent TextBlock and second never changes it's content when I change selected item in listBox?


In the second example you're setting the ToolTip of the TextBlock to be a ToolTip. So you actually set the Content of the ToolTip to be another ToolTip. These would be the same as the first.

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

And these would pretty much be the same as the last

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜