我对WPF 4.5中的MVVM Light有疑问。它不应该需要任何代码。我很好奇当我发送一条消息来触发一个viewmodel将BACK发送到原始viewmodel ICollectionView时会发生什么。它们现在是两个单独的副本,还是我访问我要求的原件?如果我不是,你如何访问原始变量,以便你不会有新的'第二个ICollectionView?
答案 0 :(得分:1)
让我看看我是否理解你的问题:
您有两个ViewModel调用VM1和VM2。
VM1可以像这样收听来自VM2的消息:
Messenger.Default.Register<ICollectionView>(this, HandleCollectionReceived);
private void HandleCollectionReceived(ICollectionView collection)
{
// do stuff with the collection
}
然后VM2可以将原始集合发送到VM1,如下所示:
Messenger.Default.Send(MyCollectionView);
或者像这样的副本:
var MyCopy = new CollectionView(MyCollectionView);
Messenger.Default.Send(MyCopy);
换句话说:您选择在邮件中发送的内容,因此您可以选择是发送对象的原件还是副本。