【发布时间】:2011-07-01 13:12:03
【问题描述】:
我对 WPF 比较陌生。我正在尝试使用 Jabber.NET 实现聊天应用程序,并且我想遵循正确的 MVVM 架构。我有以下型号:
好友列表模型
聊天会话模型
聊天消息模型
以下 ViewModel:
好友列表视图模型
ChatSessionsViewModel
ChatMessagesViewModel
每个 VM 都包含 ObservableCollection<> 的对应模型。
我在 BuddyListViewModel 中实例化 Jabber(我在其中放置了登录处理),并且所有事件处理程序(存在、新消息)都在该 VM 中;问题是,这样做,我必须从 BuddyListViewModel 调用其他 VM 方法(新消息到达时的 AddNewChatSession,......),我不知道这是否是 MVVM 的正确方法。
另一个问题是我在单个 ViewModel 中处理所有消息,并考虑使用过滤器(例如在 linq 中)在相应的 ChatSession 中显示消息。是好事吗?
【问题讨论】: