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 =
超级会员免费看
订阅专栏 解锁全文

88

被折叠的 条评论
为什么被折叠?



