代码改变世界

WP7备注(12)(页面数据共享)

2011-04-27 13:27  血糯米Otomii  阅读(255)  评论(0编辑  收藏  举报

通过App实现数据共享:

数据声明:

public partial class App : Application
{
public Color? SharedColor { set; get; }
}

存取数据方法:

(Application.Current as App).SharedColor

通过OnNavigatedFrom实现数据交互:

当OnNavigatedFrom调用的时候,NavigationEventArgs对象中的Content为被跳转的页面,所以可以把数据保存到被跳转页面的一个变量中,以保存

protected override void OnNavigatedFrom(NavigationEventArgs args)
{
if (ContentPanel.Background is SolidColorBrush)
{
Color clr = (ContentPanel.Background as SolidColorBrush).Color;
if (args.Content is MainPage)
(args.Content as MainPage).ReturnedColor = clr;
}
base.OnNavigatedFrom(e);
}

PhoneApplicationService(不建议,太脑残了):

PhoneApplicationService为所有App的整体Service

当按了Start后,App进入墓碑状态,这时直接点Back,可以直接回到这个App,但是如果又打开个新的实例并关闭的时候,原来的这个App的数据将被清空

储存:

PhoneApplicationService.Current.State["Color"] = clr;

读取:

if (PhoneApplicationService.Current.State.ContainsKey("Color"))
{
Color clr = (Color)PhoneApplicationService.Current.State["Color"];
}