Сохранить пользовательский интерфейс / состояние страницы - PullRequest
0 голосов
/ 02 октября 2018

У нас есть приложение в стиле чата, такое как Telegram Desktop: в правой части окна список корреспондентов, в левой части - список сгруппированных по дате диалоговых сообщений с выбранным корреспондентом.Теперь мы используем словарь для сохранения текущего состояния каждого диалога с корреспондентом.Выбрав корреспондента, мы взяли существующий элемент управления для диалогового окна отображения или создали новый и связали его с ContentPresenter:

    <ContentPresenter Content="{x:Bind ViewModel.DetailsDialog, Mode=OneWay}"/>

После добавления трех или более элементов управления в словарь пользовательский интерфейс начинает зависать (прокрутка отключена и т. Д.), Памятьи процессор не перегружен (что-то около 6% процессора и 50 МБ ОЗУ).

Поэтому мой вопрос заключается в том, как достичь наилучшей производительности при сохранении состояния элемента управления или страницы интерфейса пользователя?

1 Ответ

0 голосов
/ 02 октября 2018

Вместо сохранения элементов пользовательского интерфейса, которые являются дорогостоящими, обычно лучше сохранять состояние в классах модели представления, которые содержат все данные, а затем использовать привязку данных для привязки данных состояния к «свежему» новому экземпляру пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...