XAML多级绑定源/路径问题

时间:2010-05-05 22:04:46

标签: wpf xaml binding path

我有一个名为ChromeWindow的XAML对象(派生自Window),其后面有一个名为DependencyProperty的{​​{1}}代码,后者存储对关联的ApplicationChrome的引用XAML对象(派生自UserControl)。 ApplicationChrome的XAML文件有一些AppChrome'd对象(例如TextBlock和Border),我想从x:Name的XAML绑定到该对象。 XAML中ChromeWindow的根ChromeWindow'为x:Name,因此我认为其中一个绑定可行:

rootWindow

但是抱怨BindingExpression路径错误导致在ApplicationChrome类型的对象上找不到属性'CaptionTextBlock'(在AppChrome的XAML中为x:Name'd TextBlock)

所以我尝试了这个绑定intead:

{Binding ElementName=rootWindow, Path=AppChrome.CaptionTextBlock.Text, Mode=OneWay}

仍然没有运气,这次再次抱怨{Binding Source=AppChrome.CaptionTextBlock, Path=Text, Mode=OneWay} 路径错误,但这次它找不到类型为BindingExpression的对象的CaptionTextBlock属性

1 个答案:

答案 0 :(得分:0)

即使您已经命名了这些元素,它们也不可用于绑定,除非为它们公开了依赖项属性。

ApplicationChrome需要公开名为CaptionTextBlock的依赖项属性才能使此绑定生效。

也许您可以解释为什么要尝试绑定到这些对象,以便我们更好地了解您的场景。可能有更好的方法,因为这种绑定不仅凌乱,而且非常不寻常。