Альтернативы для статических событий WPF MVVM - PullRequest
0 голосов
/ 15 декабря 2018

Я пытался соединить два viewmodels друг с другом и в итоге использовал static events.Вот краткий обзор того, что я получил.

  1. MainViewModel

  2. ChildViewModel

Я пытался создать экземпляр ChildViewModel в конструкторе MainViewModel

ChildViewModel childViewModel;
public MainWindowViewModel()
    {
        childViewModel = new ChildViewModel();
        childViewModel.TextStatusChanged += ChildViewModel_TextStatusChanged; 
    }

Но этот подход не удался, потому что созданный здесь экземпляр ChildViewModel заканчивался завершением области действия, а также экземпляром ChildViewModel, которыйбыл создан в связанном виде, он полностью отличается от того, который я создал в MainViewModel.

. Затем я изменил его, чтобы использовать статические события, подобные этому

public MainWindowViewModel()
    {
        ChildWindowViewModel.TextStatusChanged += ChildViewModel_TextStatusChanged; 
    }

Это работало как шарм, нопосле небольшого чтения я вижу, что все люди говорят, что статические события плохие, потому что они могут привести к утечке памяти.

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

1 Ответ

0 голосов
/ 15 декабря 2018

Возможно, вам следует использовать агрегатор событий.

https://www.codeproject.com/Articles/812461/Event-Aggregator-Pattern

...