【问题标题】:Bind to a attached property绑定到附加属性
【发布时间】: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


【解决方案1】:

只需在附加的属性名称周围加上括号:

<TextBlock Text="{Binding Path=(Helper:HelpExtension.HelpText), RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListView}}}" />

【讨论】:

    【解决方案2】:

    您的意思是绑定到附加属性吗?在这种情况下,您需要额外的括号:

    {Binding Path=(Helper:HelpExtension.HelpText), ...
    

    例如,请参阅here

    【讨论】:

      猜你喜欢
      • 2011-11-01
      • 2011-02-14
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      相关资源
      最近更新 更多