Когда вы возвращаетесь из запроса, вы больше не в потоке пользовательского интерфейса. Поэтому вам необходимо переключить управление обратно в поток пользовательского интерфейса, прежде чем выполнять какие-либо действия, которые будут влиять на пользовательский интерфейс.
Вы обновляете коллекцию ObservableCollection, которая будет привязана к пользовательскому интерфейсу, и, следовательно, обновление повлияет на пользовательский интерфейс.
Есть несколько подходов, самые простые для вас цели будут
<code>Deployment.Current.Dispatcher.BeginInvoke(()=> {
foreach (var t in s) {
Transactions.Add(new TransactionViewModel());
}
});
Редактировать: Также, если вы хотите прочитать немного больше об этом, у меня есть пост в блоге об этом здесь http://csainty.blogspot.com/2010/10/windows-phone-7asynchronous-programming.html он начинается с кода, подобного вашему, который выглядит разумным и должен работать, объясняет несколько ошибок и как заставить его работать.