|
4 / 4 / 1
Регистрация: 01.09.2014
Сообщений: 54
|
|
MVVM Light и очистка ресурсов31.07.2015, 19:01. Показов 3059. Ответов 8
Метки нет (Все метки)
Собственно вопрос в том, как очистить ресурсы в MVVM Light (уничтожить ViewModel). Гугл утверждает, что нужно использовать SimpleIoc.Default.Unregister<ViewModel>. Но ресурсы таким вот образом не очищаются. Причем совсем. Например, если из MainViewModel сделать SimpleIoc.Default.Unregister<MainViewMod el>, то все волшебным образом продолжает работать )). Как сделать нормальный Dispose с физическим уничтожением экземпляра ViewModel?
0
|
|
| 31.07.2015, 19:01 | |
|
Ответы с готовыми решениями:
8
Messanger MVVM Light MVVM Light периодически отваливается Mvvm Light. EventToCommand не срабатывает |
|
4 / 4 / 1
Регистрация: 01.09.2014
Сообщений: 54
|
|
| 01.08.2015, 14:11 [ТС] | |
|
kenny69, В MVVM Light не реализован интерфейс IDisposable, поэтому это не работает. Нужно изменять ViewModelBase.
0
|
|
|
4 / 4 / 1
Регистрация: 01.09.2014
Сообщений: 54
|
|
| 01.08.2015, 14:53 [ТС] | |
|
kenny69, спасибо. Да, я уже читал это. И в общем то интерфейс ICleanup тоже вполне пригоден в некоторых случаях. Но ИМХО все таки должен быть способ полной очистки ресурсов. Не хорошо это, когда мусор после работы остается. Поэтому на днях займусь изменением ViewModelBase.
0
|
|
|
|
||
| 01.08.2015, 17:49 | ||
|
Добавлено через 1 минуту Может на MainViewModel просто что-то ссылается? Добавлено через 56 секунд Если на него ссылается View (прибиндена вью модель к DataContext), то собственно должно быть понятно почему всё продолжает работать.
0
|
||
|
4 / 4 / 1
Регистрация: 01.09.2014
Сообщений: 54
|
|
| 01.08.2015, 17:59 [ТС] | |
|
Casper-SC, я создавал новую ViewModel, к которой ничего не прибиндено и делал ее CleanUp. А потом из кода прибиндивал к ней View и DataGrid к ObservableCollection. И данные в коллекции после SimpleIoc.Default.Unregister<MainViewMod el> оставались.
0
|
|
|
|
||
| 01.08.2015, 19:57 | ||
|
Добавлено через 22 секунды Поставь решарпер, жми F12 и смотри декомпилированные исходники. Добавлено через 29 секунд Ну или скачай исходники с гитхаба (или где там лежат они ща) и смотри, что делается при вызове этого метода.
0
|
||
|
|
||||
| 01.08.2015, 20:13 | ||||
|
Видишь на скриншоте MessengerInstance? Так вот это тот самый мессенджер, который позволяет слать сообщения, а в каких-то участках кода на них подписываться. И Unregister просто отписывается.
Добавлено через 3 минуты Чтобы сборщик мусора удалил ViewModel нужно удалить все ссылки на неё. А у тебя на неё ссылается View (как я понимаю свойство DataContext ссылается на ViewModel. Ты ещё удивляешься, что всё продолжает работать как ни в чём не бывало и не зная описанных выше вещей собрался что-то там переписывать во ViewModelBase. Добавлено через 50 секунд Добавлено через 3 минуты Ещё не известно как ты используешь команды и используешь ли ты классы из библиотеки, а не свои самописные. В классах библиотеки используются слабые ссылки. Добавлено через 1 минуту Добавлено через 1 минуту Добавлено через 24 секунды Ты удалил ссылку из контенера, но на вью модель ещё указывает, как минимум, окно.
0
|
||||
| 01.08.2015, 20:13 | |
|
Помогаю со студенческими работами здесь
9
Правильная структура проекта C# MVVM Light с DialogService Реализация команд в wpf на mvvm light toolkit Как в MVVM Light установить шаблоны проектов? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|