我如何使用WPF绑定与RelativeSource?
我如何使用WPF绑定的RelativeSource
以及哪些不同的用例?
如果你想绑定到对象的另一个属性:
{Binding Path=PathToProperty, RelativeSource={RelativeSource Self}}
如果你想获得一个祖先的财产:
{Binding Path=PathToProperty,
RelativeSource={RelativeSource AncestorType={x:Type typeOfAncestor}}}
如果你想获得模板父级的属性(所以你可以在ControlTemplate中做2路绑定)
{Binding Path=PathToProperty, RelativeSource={RelativeSource TemplatedParent}}
或更短(这只适用于OneWay绑定):
{TemplateBinding Path=PathToProperty}
Binding RelativeSource={
RelativeSource Mode=FindAncestor, AncestorType={x:Type ItemType}
}
...
RelativeSource
的默认属性是Mode
属性。 这里给出了一组完整的有效值(来自MSDN):
PreviousData允许您绑定正在显示的数据项目列表中的以前的数据项目(不是包含数据项目的控制项目)。
TemplatedParent引用应用模板(其中存在数据绑定元素)的元素。 这与设置TemplateBindingExtension类似,只有在Binding位于模板中时才适用。
Self指的是您要在其上设置绑定的元素,并允许您将该元素的一个属性绑定到同一元素上的另一个属性。
FindAncestor指数据绑定元素的父链中的祖先。 您可以使用它来绑定到特定类型的祖先或其子类。 如果您要指定AncestorType和/或AncestorLevel,则使用此模式。
以下是MVVM体系结构中更直观的解释:
链接地址: http://www.djcxy.com/p/5883.html