使用Prism库进行导航
当用户与富客户端应用程序交互时,其用户界面(UI)将不断更改以反映用户正在处理的任务和数据。随着用户与应用程序交互并完成应用程序中的各种任务时,UI可能会发生相当大的变化。其中应用程序协调这些UI更改的过程通常称为导航。本主题将介绍如何使用Prism库实现模型-视图-视图模型(MVVM)复合应用程序的导航。
通常情况下,导航意味着删除UI中的某些控件,同时添加其他控件。而在其他情况下导航可能意味着更新一个或多个现有控件的可视状态。例如当应用程序的状态发生变化时,一些控件可能只是隐藏或折叠而其他控件则显示或展开。导航还可能意味着更新控件显示的数据以反映应用程序的当前状态。例如在master-detail场景中,detail视图中显示的数据将根据主视图中当前选择的项进行更新。所有这些场景都可以视为导航,因为用户界面会更新以反映用户的当前任务和应用程序的当前状态。
应用程序内的导航可能来自用户与UI的交互(通过鼠标事件或其他的UI手势),也可能来自应用程序本身内部逻辑驱动的状态变化的结果。在某些情况下,导航可能只涉及非常简单的UI更新,不需要自定义应用程序的逻辑。而在其他情况下,应用程序可能会实施复杂的逻辑,并以编程的方式控制导航以确保执行某些业务规则。例如应用程序可能不允许用户在未首先确保输入的数据正确的情况下导航离开某个表单。
在Windows Presentation Foundation(WPF)或UNO应用程序中实现所需的导航行为通常是相对简单的,因为它为导航提供了直接支持。然而在使用模型-视图-视图模型(MVVM)模式的应用程序中,或者在使用多个松耦合模块的复合应用程序中,导航的实现可能更加复杂。Prism会提供了在这些情况下实施导航的指南。
Prism导航
导航被定义为应用程序协调其UI更改的过程,作为用户与应用程序交互或内部应用程序状态更改的结果。
导航类型 | 描述 |
---|---|
基于状态 | 通过在可视化树中更改现有控件的状态来完成导航。 |
基于视图 | 通过在可视化树中添加或删除元素来完成导航。 |
Prism提供了实现这两种导航方式的指南,其中会侧重于应用程序使用模型-视图-视图模型(MVVM)模式将UI(封装在视图中)与表示逻辑和数据(封装在视图模型中)分离的情况。
主题 | 描述 |
---|---|
基本的区域导航 | Prism导航系统入门。 |
确认导航 | 了解如何允许用户与导航系统交互。 |
控制视图的生命周期 | 将视图设置为即使在导航离开后仍保留在内存中。 |
导航到现有视图 | 在活动视图之间进行导航 |
导航日志 | 使用导航日志允许用户在视图中进行导航。 |
传递参数 | 将数据传递到要导航到的视图。 |
视图和视图模型参与导航 | 将视图和视图模型链接到导航系统。 |