mvvm light messenger проверит, если класс уже зарегистрирован? - PullRequest
1 голос
/ 30 марта 2011

В MVVM Light мы можем проверить, зарегистрирован ли уже класс?т.е. если я вызываю следующий метод дважды, он регистрируется дважды.Мне это нужно только один раз.

Messenger.Default.Register (this, message => DisplayError (message));

, где можно зарегистрировать экземпляр в Messenger?Конструктор или обработчик события Loaded?

, который является хорошим местом для отмены регистрации?

Ответы [ 2 ]

2 голосов
/ 30 марта 2011

В настоящее время нет API для проверки, зарегистрирован ли экземпляр или класс в Messenger.Вы должны отследить это самостоятельно.

Я обычно регистрируюсь в конструкторе и выставляю метод Cleanup, где я отменяю регистрацию перед удалением объекта.

0 голосов
/ 26 июля 2013

Просто хотел заметить, что это существует сейчас в MVVMLight.Вы можете использовать

if(SimpleIoc.Default.IsRegistered<YourType>())
{
    // Don't register again!
}
...