gpt4 book ai didi

wpf - 跨 ViewModel 共享状态/更改

转载 作者:行者123 更新时间:2023-12-04 15:55:27 25 4
gpt4 key购买 nike

我有一个应用程序,它有一个任务选项卡和一个项目选项卡。我决定为每个选项卡、TasksViewModel 和 ProjectsViewModel 创建一个单独的 ViewModel。

“任务”选项卡有一个新的任务区域,其中包含关联的项目下拉菜单,“项目”选项卡(显然)有一个项目列表。

我希望“任务”选项卡上的下拉菜单与“项目”选项卡列表共享相同的集合,这样每当我在“项目”选项卡上添加或删除项目时,“任务”选项卡上的列表都是最新的自动地。这适用于单个 ViewModel,但它开始变得非常不守规矩。

我不应该拆分成两个 ViewModel 吗?有没有像这样共享数据的通用方法?也许通过相同的ObservableCollection<Project>进入每个 ViewModel?可能是某种类型的通知返回到 TasksViewModel,类似于 ICollectionChanged。 .

感谢任何见解/输入!

最佳答案

这里最简单的解决方案通常是使用某种形式的消息服务在两个 ViewModel 之间传递信息。

例如,MVVM Light Toolkit提供 IMessenger interface对于这样的情况。

在这种情况下,使用良好的 IoC 或 DI 工具集也会有所帮助。这样您就可以将项目集合动态注入(inject)到两个 ViewModel 中,从而允许在两个 View 中使用共享集合。

关于wpf - 跨 ViewModel 共享状态/更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3018307/

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