ListPicker не отмечает выбранные элементы, когда ItemsSource привязан к данным, полученным из службы.
-
27-10-2019 - |
Вопрос
Я выполнил инструкции на http://mobileworld.appamundi.com/blogs/andywigley/archive/2012/02/02/how-to-databind-selecteditems-of-the-listpicker-and-recurringdayspicker. aspx для привязки SelectedItems в ListPicker с множественным выбором.
Когда я привязываю ItemsSource к ObservableCollection объектов, созданных в ViewModel, ListPicker работает без проблем. Однако, когда я привязываю ItemsSource к ObservableCollection, полученной из службы WCF, возникают проблемы. ListPicker отображает все элементы правильно, их также можно выбрать и отобразить как выбранные на главном экране. Но когда я снова нажимаю на средство выбора, чтобы выбрать его, ListPicker не может «отмечать» выбранные элементы в шаблоне.
Я мог бы переписать список всех элементов, извлеченных из службы, но мне интересно, есть ли изящный способ решения этой проблемы?
Информация о проекте: WP 7.0, службы WCF, EntityFramework, много кофе
Класс сущности:
родовое словоСлужба WCF:
родовое словоXaml:
родовое словоListPickerExtended.cs
родовое словоViewModel
родовое словоРешение
Я только что нашел решение.
Я получал данные из службы каждый раз при загрузке страницы.При возврате из шаблона полного режима в ListPicker главная страница была перезагружена, при этом свойство DishTypesList было сброшено с использованием вновь полученных данных.Хотя ListPicker.SelectedItems все еще был установлен, новый объект не соответствовал объектам в них.
Мне просто нужно было переместить данные загрузки в конструктор модели представления, и ListPicker начал работать правильно.