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

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



