2010-11-15 99 views
0

我已經寫了下面的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改變所選擇的項目它的內容?

回答

3

在第二個示例中,您將TextBlock的ToolTip設置爲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> 

而這些將幾乎是一樣的最後

<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

你能告訴我如何設置工具提示的的ContentTemplate在第一種情況? – Poma 2010-11-16 01:08:37

相關問題