C# 框架不包含SourcePageType的定义

C# 框架不包含SourcePageType的定义,c#,wpf,uwp,xaml-islands,C#,Wpf,Uwp,Xaml Islands,我正在尝试使用xaml islands为我的wpf应用程序设置导航,但无法在视图之间导航。我得到一个错误: frame does not contain a definition of SourcePageType MainWindow.cs: private void On_Navigated(object sender, NavigationEventArgs e) { if (NavView.Child is NavigationView navigati

我正在尝试使用xaml islands为我的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();
            }
    } 
}
private void在所导航的对象上(对象发送方、导航目标)
{
if(NavView.Child是NavigationView NavigationView){
//NavView.IsBackEnabled=ContentFrame.CanGoBack;
导航视图=导航视图;
if(ContentFrame.Content?.GetType()==typeof(setingspage))
{
//SettingsItem不是NavView.MenuItems的一部分,并且没有标记。
navView.SelectedItem=(NavigationViewItem)navView.SettingsItem;
navView.Header=“设置”;
}
else if(ContentFrame.Content!=null)
{
var item=\u pages.FirstOrDefault(p=>p.Page==e.Content);
navView.SelectedItem=navView.MenuItems
第()类
.First(n=>n.Tag.Equals(item.Tag));
导航视图.标题=
((NavigationViewItem)navView.Content)?.Content?.ToString();
}
} 
}
我认为NavView_加载的方法捕捉所选项目有问题吗?在xaml岛上没有导航的例子吗


谢谢

WPF中的
System.Windows.Controls.Frame
类没有
SourcePageType
属性,这与Xaml孤岛无关

如果您想知道当前加载到
框架中的
页面
的类型,可以调用其
内容
属性上的
GetType()
方法:

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)
    {
        ...
    }
}

感谢您的帮助,但现在我遇到了以下错误:WindowsXamlHost不包含设置Sitem、SelectedItem和MenuItems、Header的定义。我更新了on_导航功能。@CodCase:当然,因为WindowsXamlHost本身没有这些属性。根据
InitialTypeName
的值,它的
子项可能有一个。导航正在显示并可协作,但我仍然无法导航到页面。我已将我的代码更新为当前版本。@CodCase:如果您有其他问题,请提出新问题。您最初的问题是关于找不到
SourcePageType
属性。