C# 框架不包含SourcePageType的定义
我正在尝试使用xaml islands为我的wpf应用程序设置导航,但无法在视图之间导航。我得到一个错误: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
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
属性。