Я довольно новичок в разработке Windows Mobile (в том числе .net framework) и уже довольно долго пытаюсь найти решение этой проблемы:
1 - у меня есть ViewModel, реализующий INotifyPropertyChanged, который содержит мой список людей:
public ObservableCollection<Person> listOfPeople;
2 - Я связываю данные listOfPeople со списком;
3 - Я создал несколько фиктивных данных в своем файле MainPage.xaml.cs, и он обновляет список.
4 - Проблема в том, что я пытаюсь обновить информацию о людях из загружаемой мной rss: Для каждого объекта person я вызываю его метод Person.updateData (). Метод извлекает некоторую информацию из RSS-канала:
internal void updateData()
{
WebClient wc = new WebClient();
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
wc.DownloadStringAsync(new Uri(sourceUrl));
}
void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
//Parse the data:
...
//Try to update:
updateAge(age);
updateAddress(Address);
}
}
И значения обновляются в классе, но не в пользовательском интерфейсе.
После поиска я обнаружил, что обработчик работает в потоке diff, и это, вероятно, проблема.
Я пытался
Deployment.Current.Dispatcher.BeginInvoke(delegate { updateSeason(season); });
но не сработало.
Кто-нибудь может мне помочь?
Спасибо