【问题标题】:Binding instance as resource将实例绑定为资源
【发布时间】: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的答案怎么样?
  • 感谢您提供有用的链接。但我不确定这是否对我有帮助。我在原始问题中添加了我的绑定表达式是什么样的。
  • 就像在提到的问题中一样,您可以创建自定义绑定,在构造函数中设置RelativeSourceModeConveter。它非常简单。
  • 好的,非常感谢。我有另一个问题。 RelativeSource 类构造函数需要祖先级别参数。如何指定像在 xaml 中那样搜索所有级别?
  • 看起来AncestorLevel默认为-1,但你不能自己设置小于1的值。所以只需使用另一个构造函数并在创建RelaticeSource 后直接设置AncestorType

标签: wpf xaml .net-3.5


【解决方案1】:

您不能在资源字典中声明Binding,我怀疑这是否可以使用资源来工作。

【讨论】:

【解决方案2】:

可能有用的是写一个custom markup extensionThis 应该是一个很好的参考。

但除此之外,您不能像那样“预定义”标记。根据您的情况,您可以将其中一些放入数据模板中,以便重复使用。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    相关资源
    最近更新 更多