mvvm light wpf 注销
mvvm light wpf unregister
我在使用 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);
}
没有帮助。
也尝试指明对象类型Messenger.Default.Unregister<GrapCommunication>(_firstViewModel)
。并确保 _firstViewModel
与注册调用的 FirstViewModel 的实例相同。
您还可以使用 Messenger 的 token 参数,这将允许您在同一个 ViewModel 上注册同一个对象的多个实例,并为您提供一些关于注册.
Messenger.Default.Register<GrapCommunication>(this, "RegistrationDescription",(emp) =>
{...}
和Messenger.Default.Unregister(_firstViewModel, "RegistrationDescription");
我在使用 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);
}
没有帮助。
也尝试指明对象类型Messenger.Default.Unregister<GrapCommunication>(_firstViewModel)
。并确保 _firstViewModel
与注册调用的 FirstViewModel 的实例相同。
您还可以使用 Messenger 的 token 参数,这将允许您在同一个 ViewModel 上注册同一个对象的多个实例,并为您提供一些关于注册.
Messenger.Default.Register<GrapCommunication>(this, "RegistrationDescription",(emp) =>
{...}
和Messenger.Default.Unregister(_firstViewModel, "RegistrationDescription");