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

时间:2012-03-27 09:29:00

标签: c# silverlight windows-phone-7 silverlight-4.0 silverlight-3.0

我知道我可以使用uri在页面之间传递值,例如:

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

我是否可以通过其他方式在页面之间传递值?

5 个答案:

答案 0 :(得分:4)

你可以制作一个单身人士;)。 这是一个例子:

    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";

答案 1 :(得分:2)

您可以使用像

这样的查询字符串值
NavigationService.Navigate(new Uri("/MainPage.xaml?value=Hello%20World", UriKind.Relative); 

并且值可以传递给

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

答案 2 :(得分:2)

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

但是你总是可以在App类中声明可用于所有页面的公共属性!

答案 3 :(得分:2)

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

答案 4 :(得分:2)

            <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" />