我利用。光框架以及统一DI。我有一套意见,每个绑到相应的模型.在这个例子也必每个图的根控制的属性,通过ViewModelLocator想法,洛朗bugnion是使已投入。光。这使得寻找这个例子通过一个静态的资源和用于控制生命期的这个例子通过一个依赖注射框架,在这种情况下的团结。它还允许对表达融看到的一切方面这个例子,如何约束他们。

正如我指出的看法有一个健康的剂量的筑巢的,但这个例子真的不知道任何有关对方。父图结合其对应视图模型通过的静态资源ViewModelLocator(其中采用统一控制建筑和生命周期的视图模型对象)。父图包含一个用户的控制,另一副景,然后去,并得到其应视图模型,通过ViewModelLocator。在这个例子没有提到的每一个其他的或知道任何层次的方面。

因此,这里是一个如何在这个例子做交互通消息。我父母认为具有组合框数据绑定以ObservableCollection在其视图模型.组合框的SelectedItem也是限(两方式)向一财产上的模型.当选择的组合框改变,这是触发更新的其他意见和子景。目前我完成此通过邮件系统中发现的。光。

所以我想知道什么是最好的做法是将得到的信息从一个模型,另一个?在这种情况下,有什么我需要传递给子-这个例子基本上是一个用户Guid代表目前登录的用户。最顶端的父图(嗯,模型)将知道这些信息,但是我不确定怎么把它拿下来到子-这个例子.

一些可能的办法我可以认为:

  • 应该子模型问 静态资源为ViewModelLocator 参照同样的目的 父母看法是利用和访问 酒店这样的吗?它似乎喜欢 这个例子走过的每一个其他的 性不是很干净 夫妇他们在一起不必要的。

  • 我已经在使用消息通知 子景的用户选择 一个新的项目组合框并 相应更新。但是对象 种类就是被选中的 组合框真的不是直接 与此相关的数据的价值, 子景的需要。

有帮助吗?

解决方案 2

我决定有子-这个例子发布消息的请求所需要的信息,然后有父VM订阅这一信息的类型和关键标记。我不想过度使用这种通信手段,但我认为它将是有效的,几块的数据,我有麻烦找到方式来推动下通过视的层次结构。到了这一点,大多数的数据传递所有直在对事件的响应,但不是每一块的数据可能通过这种方式,尤其是如果数据是获取或事件发生在一个不同的屏幕之前的新的观点是,即使构成并阅读收到的数据。

我有一个twitter的话带有一些熟知名字在这个空间(格伦块,约翰,爸爸,和抢劫艾森伯格).他们建议一些东西就像一个游客的模式,但我不确定,将工作以及没有一个层次结构的虚拟机。这可能是因为我的设计有相当多的被视一,而不是一个模型一的方法。另一项建议可能已经可行的会修改我的ViewModelLocator和依赖注射使用的包括能够通过在数据值的子虚拟机在创作的时间。我有一个小麻烦构想,因为它的静态性质的浏览,并决定该信息请求的解决方案来将是更多的直接的和简单的。我可能将不得不重新考虑解决方案,如果有结束了正在太多的更多碎片的数据下降到这一情况。

其他提示

我看见基本上有两种办法。对于一般的跨VM通信该事件的聚合模式的伟大工程。

层次结构的虚拟机,但是使用一个访问者模式可能会更好。与访问者你可以有信息流通的层次结构例如让每一个儿童一个引用父VM动。

你也可以这样做,但面临的挑战是围绕传递足够的信息的有效载荷的消息,这样的孩子知道这件事情,他们应该关心。

尽VM定位,绝对不行!VM定位器的东西是严格结合在UI它不应该表本身之外,上下文(最佳).

我的$.02 格伦

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top