WinRT (Win 8) Магазин App XAML привязки RelativeSourceMode FindAncestor отсутствует? - программирование
Подтвердить что ты не робот

WinRT (Win 8) Магазин App XAML привязки RelativeSourceMode FindAncestor отсутствует?

Кто-нибудь знает, что такое "новый способ" FindAncestor в привязках XAML? Глядя на RelativeSourceMode (http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.data.relativesourcemode), есть только варианты для ссылки на self или TemplatedParent. FindAncestor ушел. Я хотел бы знать, почему и каковы типичные решения проблем, которые я исправил с помощью FindAncestor.

С уважением Gope

4b9b3361

Ответ 1

Почему он отсутствует? Не знаю, но я сомневаюсь, что есть объяснение, кроме "у Microsoft не было достаточно времени для реализации всех функций во времени".

Легкая работа - это использовать ElementName, а именно:

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

И чтобы добавить атрибут x: Name к предку, для которого вы хотели, чтобы привязка FindAncestor указывала на:

<TextBlock x:Name="TheNameOfTheAncestor" />

Ответ 2

Нет общего решения для этого недостатка afaik, например, вы не можете получить доступ к ListViewItem свойствам в DataTemplate, чтобы вы не могли отреагировать на изменение выбора элегантно. Вы должны найти обходное решение для каждого конкретного случая до тех пор, пока FindAncestor не будет добавлен (я не могу поверить, что это отсутствие происходит не только из-за нехватки времени)