绑定到复合路径

时间:2011-05-16 17:50:02

标签: wpf xaml binding

我正在xaml窗口中创建一个资源。 该资源是一个控制器,就像这样

<Window.Resources>
  <ext:Controller x:Key="Controller"/>
</Window.Resource>

我的xaml中有控件,我想绑定到Controller中的“compund members”,可以这么说。 就像我在控制器中有一个字符串,我想绑定到那个字符串长度

<TextBlock Text="{Binding Source={StaticResource Controller},Path=myString.Length}"/>

或类似的东西。

这似乎是一种奇怪的方式,但我希望将所有这些成员保留在控制器中,而不是将它们作为单独的资源,这样他们就可以访问控制器中的某些内容。

问题的真正本质是我有几个Windows,我希望它们共享公共资源(Controller的一个实例)。 所以我在控制器中放置了一个静态控制器。我实际上想绑定像

<TextBlock Text="{Binding Source={StaticResource Controller},Path=StaticInstance.memberProperty/>

是否可以绑定到成员的成员或我应该使用什么方法而不是想要“绑定中的复合路径”,可以这么说?

谢谢,伙计们! 感谢帮助

1 个答案:

答案 0 :(得分:3)

StaticInstance不是您的资源(它是一个实例)的属性,因为它是静态的。如果要绑定到静态成员,可以使用x:Static markup extension,请注意语法非常具体。

绑定可能如下所示:

{Binding Source={x:Static myns:Controller.StaticInstance}, Path=memberProperty}