Как я могу заново заполнить ListBox, не вызывая исключение InvalidOperation из-за недопустимого SelectedItem? - PullRequest
0 голосов
/ 22 февраля 2012

У меня есть набор ObservableCollections, который используется, среди прочего, для представления выбора пользователю в форме ListBoxes. Они заполняются на основе данных XML с сервера, когда пользователь входит в систему.

В пользовательском интерфейсе эти коллекции связаны, например, с a ListBox;

public constructor() {
    listBox.ItemsSource = App.Current.myCollection;

При выходе из системы пользователь возвращается на первую страницу (я перехожу на страницу входа и удаляю все записи в OnNavigatedTo).

И вот в чем проблема: при повторном ведении журнала кажется сложным повторное заполнение коллекций нормальным способом, который позволяет спискам в переходном состоянии (что происходит при первом входе в систему).

Другое удивительное открытие здесь заключается в том, что даже когда страница не была открыта, списки, привязанные к моим коллекциям, изменяют выбор при ручной очистке и повторном заполнении коллекции.

Есть идеи для более элегантного подхода?

1 Ответ

0 голосов
/ 22 февраля 2012

нашел виновника;при настройке привязки данных в конструкторе изменения в коллекции могут быть применены преждевременно.Правильный подход заключается в назначении ItemsSource в Loaded или OnNavigated

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