WPF - Доступ к свойству BackStack Frame изнутри фрейма
-
03-07-2019 - |
Вопрос
У меня есть страница, которая загружается внутри элемента Frame через его свойство Source. Мне нужно получить доступ к свойству Frames .BackStack из кода исходного кода xaml ... Возможно ли это?
так примерно код -
<Frame x:Name="contentFrame" Source="ProjectsPage.xaml"/>
в ProjectsPage.xaml.cs я хочу получить доступ к свойствам в его родительском фрейме.
Решение
История навигации - это одна из областей, в которой WPF остро не хватает. Нет, я не верю, что есть какой-то способ получить BackStack of Frame со страницы. Вы могли бы реализовать немного взломать, если вам не нужно делать это в общем. Подсоедините события навигации к фрейму и установите привязанное свойство зависимости к фрейму для любого объекта DependencyObject, к которому осуществляется переход. К сожалению, вы мало что можете сделать с BackStack, но я предполагаю, что вы уже определили, что он достаточно хорош для всего, что вы делаете.
Другие советы
Если вы используете NavigationService.GetNavigationService и передав элемент из ProjectsPage, вы можете получить доступ к таким вещам, как CanGoBack и GoBack на вашем Сервис NavigationService компании Frame , позволяющий достичь почти столько же, сколько и сам BackStack.