14

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

最好的问候戈佩

4

2 回答 2

14

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

一个简单的解决方法是改用ElementName,如下所示:

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

并将x:Name属性添加到您希望 FindAncestor 绑定指向的祖先:

<TextBlock x:Name="TheNameOfTheAncestor" />
于 2013-02-25T09:34:01.483 回答
4

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

于 2013-02-25T10:40:30.023 回答