Я использую mvvm light на моем проекте. Для связи между представлениями я использую GalaSoft.MvvmLight.Messaging.Messenger, но он работает не так, как ожидалось.
Код ниже:
Регистрация гонцаMVVM не получает сообщение
GalaMessenger.Default.Register<ServerNewMessenger>(ServiceLocator.Current.GetInstance<ServerNewViewModel>(), (msg) =>
{
Debug.Write("Click");
});
Отправить гонца к приемнику
Messenger.Default.Send<ServerNewMessenger>(newItem, ServiceLocator.Current.GetInstance<ServerNewViewModel>());
Я никогда не получить сообщение. Но когда я удаляю получателя по методу отправки:
Messenger.Default.Send<ServerNewMessenger>(newItem);
Тогда он отлично работает. Зачем?
Очень важно инициализировать класс/функцию, которая имеет значение Default.Register перед Default.Send. Это может быть ваша проблема. Проверь это. – A191919
Да, я выполнил Default.Register перед Default.Send. –
Позволяет ли вызов GetInstance возвращать другой экземпляр для каждого вызова? –