我正在试图弄清楚如何执行以下操作:
我有一个CustomerListViewModel
包含一个ObservableCollection<Customer>
MainView
包含这些视图的实例:
CustomerListView
- 创建一个实例 CustomerListViewModel
SearchView
- 创建和实例 SearchViewModel
我的问题是,如何保持CustomerListView和SearchView分开.只有在选择了客户时才应显示SearchView.SearchViewModel的唯一依赖项应该是Customer
Model.如果没有从CustomerListViewModel中选择Customer,则不应显示SearchView.
我是否应该引入一个包含a CustomerListViewModel
和SearchViewModel
它的新View/ViewModel,它可以保存对Selected的引用Customer
并切换SearchView的显示?如果没有,我该怎么办呢?
我知道这个问题非常广泛,但我会很感激任何建议.
不要使 MainView 包含 CustomerListView 和 SearchView 的实例。他们三个应该是分开的。
就视图之间的通信而言,这应该使用 mvvm-light Messenger 等通过各自的视图模型来完成。如果您为每个视图注册不同的信使,那么您可以从视图模型将消息发送到您想要的任何视图。
只是使用 MVVMLight Messenger 的简单性示例:-
看法:
Messenger.Default.Register<NotificationMessage>(this, OpenViewMessageReceived);
private void OpenViewMessageReceived(NotificationMessage msg)
{
//Logic
}
Run Code Online (Sandbox Code Playgroud)
视图模型:
Messenger.Default.Send(new NotificationMessage(someStr));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3467 次 |
最近记录: |