Следуя шаблону MVVM, я пытаюсь подключить отображение дочернего окна представлением в ответ на запрос от модели представления.
] Используя MVVM-Light Messenger, View будет регистрировать запрос на отображение дочернего окна в конструкторе View следующим образом:
InitializeComponent();
Messenger.Default.Register<EditorInfo>(this, (editorData) =>
{
ChildWindow editWindow = new EditWindow();
editWindow.Closed += (s, args) =>
{
if (editWindow.DialogResult == true)
// Send data back to VM
else
// Send 'Cancel' back to VM
};
editWindow.Show();
});
Вызывает ли подписка на событие ChildWindow Closed с помощью лямбда-выражения проблемы для сборки мусора. Или, другими словами, когда (если вообще когда-либо) на editWindow перестанет ссылаться и он станет кандидатом на сборку мусора.