C# 如何导航到同一解决方案中的另一个项目
希望有人能帮忙 我在团队中开发了许多不同的项目,现在我们希望将这些结合起来。因此,我将这些项目包括在内。 在启动项目中,我包括了对其他项目的引用。 然后我使用另一个stackoverflow线程的代码: 这给了我以下信息C# 如何导航到同一解决方案中的另一个项目,c#,visual-studio-2012,mvvm,windows-phone-8,navigationservice,C#,Visual Studio 2012,Mvvm,Windows Phone 8,Navigationservice,希望有人能帮忙 我在团队中开发了许多不同的项目,现在我们希望将这些结合起来。因此,我将这些项目包括在内。 在启动项目中,我包括了对其他项目的引用。 然后我使用另一个stackoverflow线程的代码: 这给了我以下信息 NavigationService.Navigate(new Uri("/MVVMTestApp;/component/View/MainPage.xaml", UriKind.Relative)); 项目构建并运行。但是当我按下应该激活代码的按钮时,我在执行该行之
NavigationService.Navigate(new Uri("/MVVMTestApp;/component/View/MainPage.xaml", UriKind.Relative));
项目构建并运行。但是当我按下应该激活代码的按钮时,我在执行该行之后/期间收到一个错误
中断错误位于MainPage.g.cs文件中,该文件如下所示:
namespace MVVMTestApp {
public partial class MainPage : Microsoft.Phone.Controls.PhoneApplicationPage {
internal System.Windows.Controls.TextBlock MainPageTitle;
internal System.Windows.Controls.TextBlock LEgE;
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
*******System.Windows.Application.LoadComponent(this, new System.Uri("/MVVMTestApp;component/View/MainPage.xaml", System.UriKind.Relative));**
this.MainPageTitle = ((System.Windows.Controls.TextBlock)(this.FindName("MainPageTitle")));
this.LEgE = ((System.Windows.Controls.TextBlock)(this.FindName("LEgE")));
}
}
}
在项目之间导航。但是,在生成的xaml文件FILENAME.g.cs中插入line loadcomponent时会出现错误。据我所知,发生错误的原因是视图由datacontext连接到viewmodel。我一直没能解决这个问题
希望有人能解决这个问题?解决方案1: 您使用相同类型的项目“Windows Phone App”。在解决方案中,您需要有一个Windows Phone应用程序项目,其他项目的类型应为Windows Phone类库 然后,您可以使用以下代码行导航到同一解决方案内的另一个项目中的视图:
NavigationService.Navigate(new Uri("/MVVMTestApp;/component/View/MainPage.xaml", UriKind.Relative));
NavigationService.Navigate(new Uri("/MVVMTestApp;/component/View/MainPage.xaml", UriKind.Relative));
解决方案2:
转到调试中的配置管理器
取消选中MVVMTestApp中的部署复选框
首先,您必须引用父项目,然后 你可以通过这条线解决这个问题
NavigationService.Navigate(new
Uri("/MVVMTestApp;/View/MainPage.xaml", UriKind.Relative));
只需在“组件”之前删除“/”,如下所示:
NavigationService.Navigate(新Uri(“/MVVMTestApp;component/View/MainPage.xaml”,UriKind.Relative)) 我认为问题在于你的设置。根据您的描述,您可以将项目命名为MVVMTestApp。我想这是一个启动项目。但是,您的引用是从TestUserControls到MVVMTestApp。这是倒退。我知道,根据您试图做的事情,它似乎是正确的,但事实并非如此(除非您的项目命名混乱) 我建议您有两个项目:
- MVVMTestApp(正在启动的Windows Phone 8.1通用应用程序 (项目)
- MVVMTestApp.Lib(支持Windows Phone的可移植类 8.1)
汤姆添加/之前component@techloverr谢谢,这解决了错误,但现在我在RootFrame_NavigationFailed中遇到另一个错误。“未找到XAML…”。我的启动项目是TestUserControls,我想去的项目是MVVMTestApp,路径如上图所示。你知道这个错误吗?这个错误是在我想从哪个项目开始的app.xaml.cs文件中发现的page@techloverr我从项目TestUserControl开始。第1页:第一页,导航到第2页:动画页,我在那里做一些启动动画,第3页:菜单概述。在菜单中,我单击一个按钮并使用navigationservice转到新项目MVVMTestApp。出现新错误。在MVVMTestApp中,视图位于何处?我无法从其他项目中访问该名称?@JTIM您需要在xaml中为尝试导航的视图命名。仍然没有帮助,我需要在组件之前包含一个正斜杠,这样就不会得到XamlParseException,因为在该位置没有xaml文件。这很奇怪。@JTIM你能为你的解决方案结构做一个屏幕截图吗?我现在正在尝试,它给出了相同的错误,即在该位置没有找到XAML。你说的父项目是什么意思?我希望不必像其他解决方案那样更改库