如何在页面之间传递值?(Windows Phone)

本文关键字:Windows Phone 之间 | 更新日期: 2023-09-27 18:29:03

我知道我可以在带有uri的页面之间传递值,例如:

NavigationService.Navigate(
new Uri("/DestinationPage.xaml?parameter1=v1", UriKind.Relative)
);

有没有其他方法可以在页面之间传递值?

如何在页面之间传递值?(Windows Phone)

您可以制作一个Singleton;)。这里有一个例子:

    public class MySingleton
    {
            private static MySingleton _mInstance;
            public static MySingleton Instance
            {
                get { return _mInstance ?? (_mInstance = new MySingleton()); }
            }
        /// <summary>
        /// You can send values through this string.
        /// </summary>
        public string SomeString { get; set; }
    }

编辑:要给它赋值,你可以这样做:

MySingleton.Instance.SomeString = "Text";

您可以使用类似的查询字符串值

NavigationService.Navigate(new Uri("/MainPage.xaml?value=Hello%20World", UriKind.Relative); 

并且该值可以作为传递

string value =  this.NavigationContext.QueryString["value"]; 

除了在页面uri中传递字符串并使用NavigationContext检索它们之外,没有任何现成的选项!

但您可以始终在应用程序类中声明所有页面都可用的公共属性!

您可以使用IsolatedStorageSetting传递值,使用isolatedStorage时必须小心,您必须手动清除它,除非您这样做或卸载应用程序/关闭模拟器,IsolatedSorage Documentation

            <Button Content="Next page" Grid.Column="1" Height="23" Tag="/NextPage.xaml"  HorizontalAlignment="Right" Margin="0,6,12,0" Name="btnViewQuestion" VerticalAlignment="Top" Width="100" />