框架不包含 SourcePageType 的定义

frame does not contain a definition of SourcePageType

我正在尝试使用 xaml 岛为我的 wpf 应用程序设置导航,但无法在视图之间导航。我得到一个错误:

frame does not contain a definition of SourcePageType

MainWindow.cs:

    private void On_Navigated(object sender, NavigationEventArgs e)
    {
        if (NavView.Child is NavigationView navigationView) {
            // NavView.IsBackEnabled = ContentFrame.CanGoBack;
            navView = navigationView;
            if (ContentFrame.Content?.GetType() == typeof(SettingsPage))
            {
                // SettingsItem is not part of NavView.MenuItems, and doesn't have a Tag.
                navView.SelectedItem = (NavigationViewItem)navView.SettingsItem;
                navView.Header = "Settings";
            }
            else if (ContentFrame.Content != null)
            {
                var item = _pages.FirstOrDefault(p => p.Page == e.Content);

                navView.SelectedItem = navView.MenuItems
                    .OfType<NavigationViewItem>()
                    .First(n => n.Tag.Equals(item.Tag));

                navView.Header =
                    ((NavigationViewItem)navView.Content)?.Content?.ToString();
            }
    } 
}

我觉得NavView_Loaded抓取选中项的方法有问题? xaml 岛屿有没有导航的例子?

谢谢

WPF中的System.Windows.Controls.Frameclass没有SourcePageType属性这与Xaml岛无关

如果您想知道当前加载到 Frame 中的 Page 的类型,您可以在其 Content 属性:

private void On_Navigated(object sender, NavigationEventArgs e)
{

    if (ContentFrame.Content?.GetType() == typeof(SettingsPage))
    {
        navView.SelectedItem = (NavigationViewItem)navView.SettingsItem;
        navView.Header = "Settings";
    }
    else if (ContentFrame.Content != null)
    {
        ...
    }
}