WPF: показать UserControl до загрузки всех связанных свойств - PullRequest
0 голосов
/ 10 марта 2009

У меня есть один UserControl, который имеет ListView, показывающий список объектов клиента. Двойной щелчок по одной из строк воспроизводит анимацию и переходит к другому UserControl, который показывает список учетных записей для этого клиента.

Второй пользовательский элемент управления привязан к свойству Accounts объекта Client. Список учетных записей загружается при первом обращении к свойству. Это все прекрасно работает, если список аккаунтов невелик. Если список учетных записей велик, между двойным щелчком и появлением списка учетных записей очень заметна задержка. А анимация вообще не воспроизводится.

Я понимаю, что здесь происходит, но я не уверен, как лучше это исправить. Как сделать так, чтобы анимация все еще воспроизводилась и отображался второй пользовательский элемент управления, но список учетных записей отображается по мере их загрузки? Я понимаю, что мне нужно будет загрузить представление списка асинхронно, и у меня нет проблем с использованием BackgroundWorker для этого, но я не уверен, где эта загрузка произойдет.

Список учетных записей представляет собой ObservableCollection, а объект Client реализует INotifyPropertyChanged, однако не вызывает PropertyChanged для свойства account, поскольку у него нет установщика.

Ответы [ 2 ]

1 голос
/ 17 мая 2009

Вы можете попробовать установить IsAsync = true в привязке, например: {Binding Path = Accouns, IsAsync = true}

1 голос
/ 10 марта 2009

Я думаю, вам нужно взглянуть на виртуализированные элементы управления в WPF - они отображают только необходимое содержимое, а не весь список, и поэтому работают намного быстрее, чем стандартный ListView.

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