如何基于命令更改View +视图模型

林刚起步的这整个WPF的事情,需要了解一些基本要素。 我到目前为止,我undrstand模型,视图和视图模型中的MVVM模式得到。

我不明白在这里/如何去chaning在此基础上我的UI。

可以说我有一个应用程序,我需要先登录。 我的登录是一个视图,视图模型一+模式,我有。 在展示这一块,因为它的“启动”的观点,我只是在我的窗口的构造函数添加它没有问题(对还是错?)。 当用户成功登录后,我想改变视图和视图模型来如。 仪表板视图+视图模型。 如果我手动做这一切,只是去掉这是登录用户控件,然后加入其他用户控件是仪表板? 然后更改的DataContext? 这是如何实现正常?

我担心的是,即时通讯引入了大量的代码只是切换视图+视图模型,这困扰我了一下。 什么,当我从仪表板到customerlisting,然后projectlisting等我在我的事件处理程序写这个逻辑/为按钮按下的命令?

--------------解决方案-------------

  • 视图是UI(可能是一个窗口,网页,用户控件)
  • 视图模型是后端到视图

您的登录窗口将有自己的看法模式,仪表板将有自己的视图模型。 你不手动切换视图模型。

因此,用户输入他/她的用户名和密码,进入点击,登录视图模型通过视图结合获取数据,然后在模型验证凭据,如果他们是正确的,然后仪表盘显示这势必将其视图模式。

你有一个登录视图,视图模型+仪表板视图和视图模型+其他视图,视图模型等控制。

- 更新:

比方说,你具备以下条件: - 窗口 - 登录控制 - 仪表板控制

所有有自己的看法(V)和视图模型(VM)窗口VM有两个知名度性质,登录并在窗口V绑定到他们的仪表盘可视性属性。

当应用程序启动的登录控制是可见的,当登录成功后,该模型告诉窗口VM设置登录visibility属性来倒塌,仪表板可见性属性可见,这则窗口VM告诉窗口V至隐藏登录控制和显示仪表板控制。

“讲述”方式筹集活动,发送消息,调用一个方法 - 取决于你如何实现MVVM。

包含用户控件和框架创建MainPageView。 设置MainPageView作为根的视觉享受。 然后,您可以框架的源代码绑定到MainPageViewModel的属性。 请登录或仪表板之间的导航是将消息发送到MainPageViewModel并设置该帧的源被绑定到财产的问题。

如果你希望你的观点是在另一个窗口,那么你可以简单地创建每个窗口(独立XAML)视图/视图模型,并通过创建新的窗口,使其可见,然后退出以前它们之间进行切换。

不过,如果你想在同一窗口中切换视图,那么我建议你这样做使用自定义ContentPresenter。 改变窗口的内容时,资源管理:我也问过这个类似的问题,你可以在这里找到。

如果你只是切换的知名度,你会持有到所有视图中加载资源。 使用自定义ContentPresenter,可以换出当前内容,而旧的内容会被垃圾收集器被拾起。 一个命令将被发送和视图模型,这将改变目前的视野回升(这是在视图模型场)。 该ContentPresenter将有一个绑定到视图模型的现场,当视图模型接收命令自动切换其内容。

分类:WPF 时间:2015-03-15 人气:4
本文关键词: WPF,MVVM
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 2.308 (s). 10 q(s)