我正在尝试掌握 MVVM 模式、Silverlight 和 XAML。
我正处于一个将 View 加载到框架中的主页的阶段。每个 View 都可以绑定(bind)到其在 xaml 中的 View 模型,然后绑定(bind)到 View 模型数据。我还在为按钮单击和网格事件等(例如 SelectionChanged)触发命令。
当用户使用主页面导航菜单进行导航时,新 View 被加载到框架中,从而创建其自己的 View 模型的实例。
我的问题是,我的一个 View 的 View 模型为某些数据调用了 WCF 方法,然后通过绑定(bind)到 View 模型中保存的 ObservableCollection 将其显示在网格中。如果进行了更改,它只需调用保存 WCF 方法并传回此 ObservableCollection。但是,当用户双击网格中的一条线时,我需要存储一些信息并将其保存到下一个 View (因为双击也会更改为不同的 View )。诸如“所选项目 ID”之类的信息。
我最终得到的是一组“模型”类,它们与 View 模型分开并保存应用程序状态和用户选择等内容。 View 模型可以在此处存储内容,例如“选定项目 ID”。在我看来..“模型”几乎是 WCF 调用另一端的所有内容?我不认为我应该在这里创建另一个模型“层”?
我不知道这种方法有什么问题,但感觉不对。
谁能阐明我应该如何做到这一点?或者,如果这是一个好的方法?我误解了这里的模式吗?
谢谢你的帮助!
最佳答案
我觉得你想多了。我认为这是一个不错的方法。如果您愿意,我认为拥有“UI 模型”是合理的。每个应用程序通常都有助手类。只要您采用“关注点分离”的方法,那么您的应用程序就可以维护。我的 silverlight 应用程序有一个“模型”区域,可以根据需要跟踪应用程序状态。该模型区域还具有特定于 UI 的类。 ——我的两分钱。
关于silverlight - Silverlight 中的 MVVM 数据持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9907595/