26、Silverlight 导航系统全解析

Silverlight 导航系统全解析

1. 保留页面状态

当计划允许用户在复杂页面间频繁导航时,创建每个页面一次并将页面实例保留在内存中是个不错的选择。这种方法能保持页面的当前状态,包括所有输入控件的值。

要实现这个模式,首先需要一个系统来识别页面。可以使用字符串名称,但枚举能更好地防止错误。以下是一个区分三个页面的枚举:

public enum Pages
{
    MainWindow,
    ReviewPage,
    AboutPage
}

可以将应用程序的页面存储在自定义应用程序类的私有字段中,使用一个简单的字典来实现:

private static Dictionary<Pages, UserControl> pageCache =
  new Dictionary<Pages,UserControl>();

Navigate() 方法中,仅在需要创建页面时才创建,即对应的对象不在缓存页面集合中:

public static void Navigate(Pages newPage)
{
    // 获取当前应用程序对象并转换为自定义(派生)App 类的实例。
    App currentApp = (App)Application.Current;

    // 检查页面是否已创建。
    if 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值