WinRT(Win 8)商店应用XAML绑定RelativeSourceMode FindAncestor缺失?

时间:2013-02-19 09:04:29

标签: data-binding winrt-xaml

有人知道XAML绑定中FindAncestor的“新方式”是什么吗?查看RelativeSourceMode(http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.data.relativesourcemode),只剩下引用self或TemplatedParent的选项。 FindAncestor消失了。我想知道为什么以及使用FindAncestor修复问题的典型解决方案。

祝你好运 Gope

2 个答案:

答案 0 :(得分:14)

为什么它会丢失?不知道,但我怀疑除了“微软没有足够的时间及时实现所有功能”之外还有其他解释。

简单的解决方法是使用 ElementName ,如:

Binding={ ElementName=TheNameOfTheAncesor, Path=DataContext.TheViewModelProperyIWantToBindTo }

要向祖先添加 x:Name 属性,您希望FindAncestor绑定指向:

<TextBlock x:Name="TheNameOfTheAncestor" />

答案 1 :(得分:4)

这种缺乏afaik没有通用的解决方案,例如,您无法访问ListViewItem中的DataTemplate属性,因此您无法优雅地对选择更改做出反应。您应该找到每个特定案例的解决方法,直到FindAncestor被添加(我不能相信这种缺席不仅仅是由于时间不足)