不确定这里出了什么问题,但是绑定在数据模板中的标签可以工作,而工具提示则不行。非常感谢任何帮助。
<DataTemplate DataType="Label">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<StackPanel.ToolTip>
<ToolTip DataContext="{Binding Path=PlacementTarget,
RelativeSource={x:Static RelativeSource.Self}}">
<TextBlock Text="{Binding Path=DataContext.Description}" />
</ToolTip>
</StackPanel.ToolTip>
<Image Source="{StaticResource ApplicationInfoS}"
Margin="0 0 5 0" Stretch="None"
HorizontalAlignment="Left" />
<Label Style="{StaticResource lblTextContent}"
Padding="5 0 0 0"
Content="{Binding Path=DataContext.Description, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}"/>
</StackPanel>
</DataTemplate>
顺便提一句,DataTemplate是在ListView中使用的。 "Description" 属性存在于绑定到ListView的视图模型上。
我在VS2010的输出窗口中得到的消息如下:
System.Windows.Data Error: 39 : BindingExpression路径错误:'Description'属性在 'object' ''String' (HashCode=-466763399)' 上未找到。BindingExpression:Path=DataContext.Description; DataItem='StackPanel'(名称=''); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
更新
我暂时放弃了。暂时使用以下Hack:
向StackPanel添加一个标签,将“Description”绑定到它上面。
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Tag="{Binding Path=DataContext.Description, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}">
将ToolTip绑定到标签。 是一种hack但它可行。
<StackPanel.ToolTip>
<ToolTip DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}">
<TextBlock Text="{Binding Path=Tag}" />
</ToolTip>
</StackPanel.ToolTip>
干杯
Mike