首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在RelativeSource中使用WPF绑定?

如何在RelativeSource中使用WPF绑定?
EN

Stack Overflow用户
提问于 2008-09-17 15:10:54
回答 14查看 477.7K关注 0票数 631

如何将RelativeSource与WPF绑定一起使用?有哪些不同的用例?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2008-09-17 15:14:52

如果要绑定到对象上的另一个属性:

代码语言:javascript
运行
复制
{Binding Path=PathToProperty, RelativeSource={RelativeSource Self}}

如果要获取祖先的属性,请执行以下操作:

代码语言:javascript
运行
复制
{Binding Path=PathToProperty,
    RelativeSource={RelativeSource AncestorType={x:Type typeOfAncestor}}}

如果你想在模板化的父元素上获取一个属性(这样你就可以在一个ControlTemplate中进行双向绑定)

代码语言:javascript
运行
复制
{Binding Path=PathToProperty, RelativeSource={RelativeSource TemplatedParent}}

或者更短(这只适用于OneWay绑定):

代码语言:javascript
运行
复制
{TemplateBinding Path=PathToProperty}
票数 833
EN

Stack Overflow用户

发布于 2009-03-03 09:24:23

代码语言:javascript
运行
复制
Binding RelativeSource={
    RelativeSource Mode=FindAncestor, AncestorType={x:Type ItemType}
}
...

RelativeSource的默认属性是Mode属性。这里给出了一组完整的有效值(from MSDN):

displayed.

  • TemplatedParent
  • PreviousData允许您绑定数据项列表中的前一个数据项(而不是包含该数据项的控件),该数据项列表引用模板(其中存在数据绑定元素)所应用的元素。这类似于设置TemplateBindingExtension,并且仅在绑定位于模板内时适用。
  • Self是指在其上设置绑定的元素,并允许您将该元素的一个属性绑定到数据绑定元素父链中的另一个属性。Self引用数据绑定元素的父链中的祖先。您可以使用它绑定到特定类型的祖先或其子类。如果要指定AncestorType和/或AncestorLevel.

,则使用此模式

票数 138
EN

Stack Overflow用户

发布于 2011-03-16 10:35:13

在MVVM架构的上下文中有一个更直观的解释:

票数 136
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/84278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档