我对mvvm light有一些问题。使用MVVMLight
例如,我在消息
上的_firstViewModel中注册FirstViewModel()
{
Messenger.Default.Register<GrapCommunication>(this, (emp) =>
{
if (selectedNumber != null && emp.assetSelector.ContainsKey(selectedNumber))
S.Points.Add(new DataPoint(DateTime.Now.ToOADate(), emp.assetSelector[selectedNumber].Last_Value));
});
}
当我打开_secondViewModel时。 _firstViewModel仍然获取数据。我试着做一些像
这样的事情private void ExecuteSecondViewCommand()
{
CurrentViewModel = MainViewModel._secondViewModel;
Messenger.Default.Unregister(_firstViewModel);
}
没有帮助。
答案 0 :(得分:0)
尝试同时指出对象类型Messenger.Default.Unregister<GrapCommunication>(_firstViewModel)
。并确保_firstViewModel
与注册该呼叫的 FirstViewModel 的实例相同。
您还可以使用Messenger的令牌参数,这将允许您在同一ViewModel上注册同一对象的多个实例,并为您提供有关注册的一些额外信息。
Messenger.Default.Register<GrapCommunication>(this, "RegistrationDescription",(emp) =>
{...}
Messenger.Default.Unregister(_firstViewModel, "RegistrationDescription");