我在我的应用程序中浏览不同的页面.登录后,我来到导航开始的主页.在导航期间,当我来到主页时,我想通过按BackKey进入登录页面,但我只能导航到以前导航的页面.我可以覆盖BackKeyPress事件以导航到登录页面,但在LoginPage中我应该再次覆盖Backkeypress,否则在登录页面和主页之间似乎存在循环按下后退键.反正有没有清除导航历史记录?
我看到很多答案,关于拆除后台.
但是如何删除前向堆栈?
Aka,导航A,B,C
A - > B - > C.
然后我从C导航回B(表格保存,C关闭NavigationService.GoBack();)
B < - C.
我现在应该不能使用前进按钮导航回C. 但不知道如何实现这一点.以某种方式将它从堆栈中删除是最有意义的.
嘿希望有人可以提供帮助.
我在小组中开发了许多不同的项目,我们现在想要将它们结合起来.因此,我包括了这些项目.在启动项目中,我包含对其他项目的引用.然后我使用另一个stackoverflow线程中的代码:
这给了我以下几点
NavigationService.Navigate(new Uri("/MVVMTestApp;/component/View/MainPage.xaml", UriKind.Relative));
Run Code Online (Sandbox Code Playgroud)
该项目建立并运行.但是当我按下应该激活代码的按钮时,在执行该行之后/期间会出现错误.
中断错误位于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")));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我插入星星的那条线就是它打破的地方.我需要做些什么来使它工作?
额外
正如在评论中所说,我需要在组件之前包含一个前锋"/",这是奇怪的,因为它没有在任何地方使用,否则像上面的链接和这个链接
http://www.geekchamp.com/tips/wp7-navigating-to-a-page-in-different-assembly
但是包括forwardslash我得到一个错误,那就是我没有指向任何xaml文件.排除转发,我发现XamlParseException ....
所以我仍然有导航到另一个项目中的视图的问题.
奇
我现在不必在组件之前拥有领先的前锋.只要我编写MVVMTestAppAssembly.我查看了汇编文件,找不到这个包括=?
看完msdn后我试了一下 http://msdn.microsoft.com/en-us/library/cc296240%28v=vs.95%29.aspx
但仍然没有运气,导航工作
OVerview of reference并包含元素的完整路径


一种解决方案 如一个答案中所述,一种解决方案是使用Windows phone类库.但是当我使用MVVM结构时,我无法使viewmodelLocator工作.因此,这对我来说不是解决方案.
但是如果你使用MVVM,我需要另一个解决方案.希望有人对此有所了解. 另一种解决方案 …
c# mvvm navigationservice visual-studio-2012 windows-phone-8
我正在使用页面和导航服务构建WPF应用程序.
其中一个页面将对象作为构造函数
Sub New(ByVal o As Object)
' This call is required by the Windows Form Designer.
InitializeComponent()
....
Run Code Online (Sandbox Code Playgroud)
所以,为了导航它,我做到了
Dim MyPage As New Page1(MyObject)
MyBase.NavigationService.Navigate(MyPage)
Run Code Online (Sandbox Code Playgroud)
当我在页面中编辑某些内容时,会出现问题,然后返回,并转发到MyPage,我收到以下错误:
Cannot create object of type 'Page1'. CreateInstance failed, which can be
caused by not having a public default constructor for 'Page1'.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
在WPF应用程序中,Frame控件用于托管/导航页面.我想清除导航历史记录.有NavigationService.RemoveBackEntry()方法,可用于清除历史记录的后退部分.但是前进导航历史呢?如何清除这部分?什么是最佳做法?先感谢您.
我正在尝试使用WP8中的以下内容在导航中获取最后一页
var lastPage = NavigationService.BackStack.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
但Visual Studio 12抱怨它不包含定义 FirstOrDefault
如果未设置access_token,我正在尝试导航到MainPage.xaml.
public Menu()
{
InitializeComponent();
if (((App)App.Current).access_token == null) {
NavigationService.Source=new Uri("/MainPage.xaml", UriKind.Relative);//NullReferenceException
}.../
Run Code Online (Sandbox Code Playgroud)