В настоящее время у меня есть решение с несколькими ViewModels - «нормальными» и «вложенными». Каждый раз, когда я создаю новый экземпляр ViewModel, я могу увидеть новый экземпляр в ViewModelManager.ActiveViewModels. Все идет нормально.
К сожалению, я также вижу «старые» экземпляры ViewModel, на самом деле, экземпляры, которые не используются, но все еще остаются в этом «кэше».
Мой первый вопрос сейчас, что мне нужно сделать для утилизации этих «старых» ViewModels?
И дополнительный вопрос (продолжение) ...: что рекомендуется использовать экземпляр ViewModel, чтобы избежать такого поведения?
Заранее спасибоActiveViewModels in Catel
0
A
ответ
0
Catel автоматически закроет (и удалит) режимы просмотра, как только модели с обзором действительно будут недоступны. Я рекомендую использовать последнюю предварительную заявку (v.4.0.0), потому что она очень стабильна и должна решить несколько проблем в настоящее время в 3.9.
1
Хорошо, похоже, я нашел его. Краткое описание:
Поскольку я не могу использовать Catel DataWindow, потому что мы используем DevExpress WPF (DXWindow), ViewModel, кажется, не закрывается автоматически при выгрузке View.
Я исправил проблему, закрыв ViewModel самостоятельно, когда View выгружен. Snipped:
private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs)
{
var dc = DataContext as IViewModel;
if (dc != null && !dc.IsClosed)
dc.CloseViewModel(null);
}