C# 如何将参数传递给XAML页面的构造函数

C# 如何将参数传递给XAML页面的构造函数,c#,windows-8,windows-store-apps,winrt-xaml,C#,Windows 8,Windows Store Apps,Winrt Xaml,我需要将一些参数或参数传递给页面的构造函数,似乎我找不到这样做的方法 This is only open the page. How to pass a parameter to the constructor of the Page1? this.Frame.Navigate(typeof(Page1)); 这只是打开页面。如何将参数传递给Page1的构造函数? 此.Frame.Navigate(typeof(Page1)); 通常,您应该将MVVM用于XAML应用程序。在这种情况下,您应

我需要将一些参数或参数传递给页面的构造函数,似乎我找不到这样做的方法

This is only open the page. How to pass a parameter to the constructor of the Page1? this.Frame.Navigate(typeof(Page1)); 这只是打开页面。如何将参数传递给Page1的构造函数? 此.Frame.Navigate(typeof(Page1));
通常,您应该将MVVM用于XAML应用程序。在这种情况下,您应该将值设置为ViewModel,并将其设置为页面的上下文。

通常,您应该将MVVM用于XAML应用程序。在这种情况下,您应该将值设置为ViewModel,并将其设置为页面的上下文。

通常,您应该将MVVM用于XAML应用程序。在这种情况下,您应该将值设置为ViewModel,并将其设置为页面的上下文。

通常,您应该将MVVM用于XAML应用程序。在这种情况下,您应该将值设置为ViewModel,并将其设置为页面的上下文。

您必须重写OnNavigatedTo处理程序事件并从中获取参数。阅读有关NavigationService的内容,例如,

您必须重写OnNavigatedTo处理程序事件并从中获取参数。阅读有关NavigationService的内容,例如,

您必须重写OnNavigatedTo处理程序事件并从中获取参数。阅读有关NavigationService的内容,例如,

您必须重写OnNavigatedTo处理程序事件并从中获取参数。阅读一些关于导航服务的文章,例如。

尽管你的问题非常奇怪,但这是你的答案。这不是一个XAML问题。这只是一个C#问题。在第3页上创建自定义构造函数的过程很简单,如下所示:

public sealed partial class Page2 : Page
{
    public Page2()
    {
        this.InitializeComponent();
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        var p3 = new Page3(e.Parameter);
        // do something
        base.OnNavigatedTo(e);
    }
}

public sealed partial class Page3 : Page
{
    public Page3(object parameter)
        : base()
    {
        this.NavigationCacheMode = NavigationCacheMode.Required;
        this.InitializeComponent();
    }
}
请注意两件事:

  • 我从未听说过有人做过这样的事。话虽如此,这并不意味着它错了。这让事情变得很奇怪
  • 第3页已将NavigationCacheMode设置为Required。如果您打算有一天导航到第3页,您将需要此集合以保证正确的实例。让我解释一下,当您使用Frame.Navigate(Type)时,您是在导航到一个类型,而不是一个实例。这意味着您的本地Page3实例(本例中为p3)不是您将实际导航到的结果页面。也就是说,除非您这样设置缓存模式。框架导航(p3)没有选项

  • 祝你好运。

    尽管你的问题非常奇怪,但这是你的答案。这不是一个XAML问题。这只是一个C#问题。在第3页上创建自定义构造函数的过程很简单,如下所示:

    public sealed partial class Page2 : Page
    {
        public Page2()
        {
            this.InitializeComponent();
        }
    
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            var p3 = new Page3(e.Parameter);
            // do something
            base.OnNavigatedTo(e);
        }
    }
    
    public sealed partial class Page3 : Page
    {
        public Page3(object parameter)
            : base()
        {
            this.NavigationCacheMode = NavigationCacheMode.Required;
            this.InitializeComponent();
        }
    }
    
    请注意两件事:

  • 我从未听说过有人做过这样的事。话虽如此,这并不意味着它错了。这让事情变得很奇怪
  • 第3页已将NavigationCacheMode设置为Required。如果您打算有一天导航到第3页,您将需要此集合以保证正确的实例。让我解释一下,当您使用Frame.Navigate(Type)时,您是在导航到一个类型,而不是一个实例。这意味着您的本地Page3实例(本例中为p3)不是您将实际导航到的结果页面。也就是说,除非您这样设置缓存模式。框架导航(p3)没有选项

  • 祝你好运。

    尽管你的问题非常奇怪,但这是你的答案。这不是一个XAML问题。这只是一个C#问题。在第3页上创建自定义构造函数的过程很简单,如下所示:

    public sealed partial class Page2 : Page
    {
        public Page2()
        {
            this.InitializeComponent();
        }
    
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            var p3 = new Page3(e.Parameter);
            // do something
            base.OnNavigatedTo(e);
        }
    }
    
    public sealed partial class Page3 : Page
    {
        public Page3(object parameter)
            : base()
        {
            this.NavigationCacheMode = NavigationCacheMode.Required;
            this.InitializeComponent();
        }
    }
    
    请注意两件事:

  • 我从未听说过有人做过这样的事。话虽如此,这并不意味着它错了。这让事情变得很奇怪
  • 第3页已将NavigationCacheMode设置为Required。如果您打算有一天导航到第3页,您将需要此集合以保证正确的实例。让我解释一下,当您使用Frame.Navigate(Type)时,您是在导航到一个类型,而不是一个实例。这意味着您的本地Page3实例(本例中为p3)不是您将实际导航到的结果页面。也就是说,除非您这样设置缓存模式。框架导航(p3)没有选项

  • 祝你好运。

    尽管你的问题非常奇怪,但这是你的答案。这不是一个XAML问题。这只是一个C#问题。在第3页上创建自定义构造函数的过程很简单,如下所示:

    public sealed partial class Page2 : Page
    {
        public Page2()
        {
            this.InitializeComponent();
        }
    
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            var p3 = new Page3(e.Parameter);
            // do something
            base.OnNavigatedTo(e);
        }
    }
    
    public sealed partial class Page3 : Page
    {
        public Page3(object parameter)
            : base()
        {
            this.NavigationCacheMode = NavigationCacheMode.Required;
            this.InitializeComponent();
        }
    }
    
    请注意两件事:

  • 我从未听说过有人做过这样的事。话虽如此,这并不意味着它错了。这让事情变得很奇怪
  • 第3页已将NavigationCacheMode设置为Required。如果您打算有一天导航到第3页,您将需要此集合以保证正确的实例。让我解释一下,当您使用Frame.Navigate(Type)时,您是在导航到一个类型,而不是一个实例。这意味着您的本地Page3实例(本例中为p3)不是您将实际导航到的结果页面。也就是说,除非您这样设置缓存模式。框架导航(p3)没有选项

  • 祝你好运。

    我不想这样传递参数。实际上这是我的条件:p1->P2在P2我想打开P3,但不去那里。在P2,我想将参数传递给P3构造函数以获取数据,在P2,我在P2中显示P3元素。我不想以这种方式传递参数。实际上这是我的条件:p1->P2在P2我想打开P3,但不去那里。在P2,我想将参数传递给P3构造函数以获取数据,在P2,我在P2中显示P3元素。我不想以这种方式传递参数。实际上这是我的条件:p1->P2在P2我想打开P3,但不去那里。在P2,我想将参数传递给P3构造函数以获取数据,在P2,我在P2中显示P3元素。我不想以这种方式传递参数。实际上这是我的条件:p1->P2在P2我想打开P3,但不去那里。在P2,我想将参数传递给P3构造函数以获取数据,在P2,我在P2中显示P3元素。很高兴看到您尝试了什么,以及您尝试完成了什么,以便人们能够更好地回答您的问题。很高兴看到您尝试了什么,以及你正在努力完成什么,以便人们能够更好地回答你的问题。如果能看到你做了什么,没有做什么,那就太好了