gpt4 book ai didi

wpf - 如何根据命令更改 View + viewmodel

转载 作者:行者123 更新时间:2023-12-03 10:15:27 26 4
gpt4 key购买 nike

我刚刚开始了解整个 WPF,需要了解一些基本元素。到目前为止,我了解了 MVVM 模式中的模型、 View 和 View 模型。

我没有得到的是在哪里/如何在此基础上更改我的 UI。

假设我有一个应用程序,我需要先登录。我的登录名是我拥有的 View 和 View 模型+模型。显示这个没问题,因为它是“启动” View ,我只是将它添加到窗口的构造函数中(对还是错?)。当用户成功登录后,我想将 View 和 View 模型更改为例如。仪表板 View + View 模型。我是否应该手动执行所有这些操作,只需删除作为登录名的用户控件,然后添加另一个作为仪表板的用户控件?然后更改数据上下文?这通常是如何完成的?

我担心的是我引入了很多代码只是为了切换 View + View 模型,这让我有点困扰。当我从仪表板转到客户列表,然后到项目列表等时,我会在我的事件处理程序/命令中为按下的按钮编写这个逻辑吗?

最佳答案

  • View 是 UI(可以是窗口、页面、用户控件)
  • View 模型是该 View 的后端

  • 您的登录窗口将有自己的 View 模型,您的仪表板将有自己的 View 模型。您无需手动切换 View 模型。

    因此,用户输入他/她的用户名和密码并按回车键,登录 View 模型通过 View 中的绑定(bind)获取数据,然后模型验证凭据,如果它们正确,则显示绑定(bind)到其 View 模型的仪表板。

    您有一个登录 View 和 View 模型 + 仪表板 View 和 View 模型 + 其他 View 和其他控件的 View 模型。

    - 更新:

    假设您有以下内容:
    - window
    - 登录控制
    - 仪表板控制

    都有自己的 View (V)和 View 模型(VM)
    Window VM 有两个可见性属性,Window V 中的 Login 和 Dashboard 可见性属性绑定(bind)到它们。

    当应用启动时Login控件可见,当登录成功时,模型告诉Window VM将Login可见性属性设置为折叠状态,将Dashboard可见性属性设置为可见,然后Window VM告诉Window V隐藏登录控件并显示仪表板控件。

    “告诉”意味着引发事件、发送消息、调用方法 - 取决于您如何实现 MVVM。

    关于wpf - 如何根据命令更改 View + viewmodel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252339/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com