WinRT (Win 8) Store App XAML Bindings RelativeSourceMode FindAncestor missing?

て烟熏妆下的殇ゞ 提交于 2019-11-27 01:54:10

问题


does anybody know what the "new way" of FindAncestor in XAML bindings is? Looking at the RelativeSourceMode (http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.data.relativesourcemode) there are only options left for referencing self or the TemplatedParent. FindAncestor is gone. I'd like to know why and what are the typical solutions to the problems I fixed using FindAncestor.

Best regards Gope


回答1:


Why it's missing? No idea, but I doubt there's an explanation other than "Microsoft did not have enough time to implement all the features in time".

An easy work-around is to use ElementName instead, as in:

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

And to add an x:Name attribute to the ancestor you wanted your FindAncestor binding to point to:

<TextBlock x:Name="TheNameOfTheAncestor" />



回答2:


There is no general solution for this lack afaik, for example you can't access ListViewItem properties in DataTemplate so you can't react on selection change elegantly. You should find workaround for each particular case until FindAncestor will be added(I can't believe that this absence is not just due to the lack of time)



来源:https://stackoverflow.com/questions/14953553/winrt-win-8-store-app-xaml-bindings-relativesourcemode-findancestor-missing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!