我正在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/>
是否可以绑定到成员的成员或我应该使用什么方法而不是想要“绑定中的复合路径”,可以这么说?
谢谢,伙计们! 感谢帮助
答案 0 :(得分:3)
StaticInstance
不是您的资源(它是一个实例)的属性,因为它是静态的。如果要绑定到静态成员,可以使用x:Static
markup extension,请注意语法非常具体。
绑定可能如下所示:
{Binding Source={x:Static myns:Controller.StaticInstance}, Path=memberProperty}