gpt4 book ai didi

windows-phone-8 - MVVM - 与其他 VM 共享封装模型

转载 作者:行者123 更新时间:2023-12-03 10:36:38 24 4
gpt4 key购买 nike

在我的 Windows Phone 应用程序中有一个简单的分层模型,它由一个包含其他域对象集合的类组成。

在我的 xaml 中,我声明了一个 ItemsContainer 控件,它将上述集合中的项目呈现为简单的矩形。

现在,在 VM 级别,我有一个类似于我的模型的结构,其中父 VM 具有一组子 VM。每个子虚拟机都封装了自己的模型。

每当用户点击绑定(bind)到子虚拟机的 View 时,应调用父模型对象的方法,并将相关子模型作为参数。这反过来会改变一些内部状态,这些状态将(可能)反射(reflect)在所有 subview (不仅仅是被点击的 View )上。

所以...鉴于我正在使用 MVVM Light 框架,我当前的实现如下:

  • Child-VM 公开命令
  • 命令 Execute 方法将使用信使通知父虚拟机点击事件。消息(GenericMessage类)内容将是VM封装的域对象
  • parent-VM以消息内容为参数
  • 执行parent-model的方法
  • 如果操作成功,父虚拟机发送一条新消息通知子虚拟机这一事实。再一次,消息内容是在刚刚调用的方法中用作参数的模型对象
  • 子虚拟机引发了几个 PropertyChanged 事件,最终将更新绑定(bind) View

  • 它有效,但我填充它有点麻烦。最让我烦恼的是,当点击 subview 时,关联的 VM 将广播其封装的模型对象。你觉得会有更好的方法来实现这样的系统吗?

    提前感谢您的宝贵帮助

    最佳答案

    您不能只将命令放在父 View 模型上并将 subview 模型作为命令参数传递吗?

    然后父 View 模型可以调用 subview 模型上的方法来更新它们。我不确定我是否需要所有这些消息?

    关于windows-phone-8 - MVVM - 与其他 VM 共享封装模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24937892/

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