有人知道XAML绑定中FindAncestor的“新方式”是什么吗?查看RelativeSourceMode(http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.data.relativesourcemode),只剩下引用self或TemplatedParent的选项。 FindAncestor消失了。我想知道为什么以及使用FindAncestor修复问题的典型解决方案。
祝你好运 Gope
答案 0 :(得分:14)
为什么它会丢失?不知道,但我怀疑除了“微软没有足够的时间及时实现所有功能”之外还有其他解释。
简单的解决方法是使用 ElementName ,如:
Binding={ ElementName=TheNameOfTheAncesor, Path=DataContext.TheViewModelProperyIWantToBindTo }
要向祖先添加 x:Name 属性,您希望FindAncestor绑定指向:
<TextBlock x:Name="TheNameOfTheAncestor" />
答案 1 :(得分:4)
这种缺乏afaik没有通用的解决方案,例如,您无法访问ListViewItem
中的DataTemplate
属性,因此您无法优雅地对选择更改做出反应。您应该找到每个特定案例的解决方法,直到FindAncestor
被添加(我不能相信这种缺席不仅仅是由于时间不足)