【发布时间】:2011-02-07 01:05:13
【问题描述】:
我编写了一个附加属性,其中存储了帮助文本。 此帮助文本显示在主窗口的右侧。这很好用。
现在,我想为每个控件添加一个工具提示。工具提示的内容应与帮助文本扩展的内容相同。
XAML 代码:
<ListView ctrl:ListViewLayoutManager.Enabled="true"
x:Name="ListViewSources"
ItemsSource="{Binding SourceItems}"
ItemContainerStyle="{DynamicResource ListViewItemStyleAlternate}"
Height="150"
MinWidth="350"
Helper:HelpExtension.IsControl="true"
Helper:HelpExtension.HelpText="{x:Static strings:GUIResource.HelpProfilesSourcesDescriptionText}" >
<ListView.ToolTip>
<ToolTip Style="{DynamicResource Own_TooltipStyle}"></ToolTip>
</ListView.ToolTip>
现在是样式的代码:
<Style x:Key="Own_TooltipStyle" TargetType="{x:Type ToolTip}">
<Setter Property="Background" Value="LightYellow"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolTip}">
<Grid>
<TextBlock Text="{Binding Path=Helper:HelpExtension.HelpText, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListView}}}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如果我运行程序,我会收到绑定错误:
System.Windows.Data 错误:39: BindingExpression 路径错误: 'Helper:HelpExtension' 属性不 在“对象”“ListView”上找到 (名称='ListViewSources')'。 BindingExpression:Path=Helper:HelpExtension.HelpText; 数据项='列表视图' (名称='ListViewSources');目标 元素是'TextBlock'(名称=''); 目标属性是“文本”(类型 '字符串')
有人知道如何将 TextBlock 绑定到 Helper:HelpExternsion.HelpText 的内容吗?
【问题讨论】:
-
样式代码缺失。请通过编辑您的帖子添加它。
-
我假设您的意思是附加属性,而不是标记扩展...
标签: c# wpf data-binding xaml