Как использовать Microsoft.UI.Xaml.Controls.Frame.NavigateC#

Место общения программистов C#
Anonymous
Как использовать Microsoft.UI.Xaml.Controls.Frame.Navigate

Сообщение Anonymous »

У меня вопрос относительно реализации галереи WinUI от Microsoft. В файле NavigationRootPage.xaml.cs существует метод, определенный следующим образом:

Код: Выделить всё

public void Navigate(
Type pageType,
object targetPageArguments = null,
Microsoft.UI.Xaml.Media.Animation.NavigationTransitionInfo navigationTransitionInfo = null)
{
NavigationRootPageArgs args = new NavigationRootPageArgs();
args.NavigationRootPage = this;
args.Parameter = targetPageArguments;
rootFrame.Navigate(pageType, args, navigationTransitionInfo);
}
В строке rootFrame.Navigate(pageType, args, NavigationTransitionInfo); используется переменная args, которая имеет тип NavigationRootPageArgs. Определение NavigationRootPageArgs следующее:

Код: Выделить всё

public class NavigationRootPageArgs
{
public NavigationRootPage NavigationRootPage;
public object Parameter;
}
Согласно официальной документации Microsoft, параметр метода Navigate описывается как:

Код: Выделить всё

parameter
Object
The navigation parameter to pass to the target page; must have a basic type (string, char, numeric, or GUID) to support parameter serialization using GetNavigationState.
При этом как это определение может работать с методом Navigate? Кроме того, есть ли какие-либо другие работоспособные реализации для этого сценария?
Я проконсультировался с ChatGPT и просмотрел аналогичный код на GitHub, но пока не нашел ничего полезного. Я ожидал понять, как тип NavigationRootPageArgs может работать с методом Navigate, несмотря на то, что в документации указано, что параметр должен иметь базовый тип (строковый, символьный, числовой или GUID) для поддержки сериализации параметров с помощью GetNavigationState.

Подробнее здесь: https://stackoverflow.com/questions/788 ... e-navigate

Вернуться в «C#»