Изменение источника элементов списка Silverlight не обновляет список - PullRequest
1 голос
/ 25 июля 2010

Работа со списком в Windows Phone 7 Я пытаюсь сделать асинхронный вызов веб-службы, а затем обновить список в случае успеха.

Метод, который вызывает веб-сервис, выглядит следующим образом:

    public void GetReadingList(Action<ObservableCollection<MiniStoryViewModel>> success, Action<string> failure)

Я вызываю метод с этим кодом:

        api.GetReadingList(
            (items) => Dispatcher.BeginInvoke(() => 
            {
                lsbNewest.ItemsSource = items;
            }),
            (error) =>
            {
                MessageBox.Show(error);
            });

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

Ответы [ 2 ]

1 голос
/ 26 июля 2010

В вашем коде нет ошибок, вы правы относительно спецификации ...

Попробуйте: очистите ItemsSource, затем заполните его элементами addRange или чем-нибудь еще. Проверьте, обновляется ли ваш пользовательский интерфейс автоматически.

Если нет, создайте базовое приложение silverlight в Windows и сравните эти два поведения ... возможно, ошибка; =)

0 голосов
/ 30 июля 2010

Я решил проблему, возникшую из-за применения inotifypropertychanged в моей модели представления и подняв событие change свойства в потоке пользовательского интерфейса.

...