【发布时间】:2012-03-02 21:08:41
【问题描述】:
我在 xaml 中有一个非常长且重复的绑定表达式。我可以先在资源部分定义它,然后使用 DynamicResource 或 StaticResource 来引用它吗?比如:
<SomeControl Visibility="{DynamicResource BindingToParentDataContext}">
绑定表达式如下:
{Binding Path=DataContext.SomeProperty, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:SomeParentUserControl}}, Mode=OneWay, Converter={StaticResource booleanToVisibilityConverter}}
【问题讨论】:
-
similar question的答案怎么样?
-
感谢您提供有用的链接。但我不确定这是否对我有帮助。我在原始问题中添加了我的绑定表达式是什么样的。
-
就像在提到的问题中一样,您可以创建自定义绑定,在构造函数中设置
RelativeSource、Mode和Conveter。它非常简单。 -
好的,非常感谢。我有另一个问题。 RelativeSource 类构造函数需要祖先级别参数。如何指定像在 xaml 中那样搜索所有级别?
-
看起来
AncestorLevel默认为-1,但你不能自己设置小于1的值。所以只需使用另一个构造函数并在创建RelaticeSource后直接设置AncestorType。