Вопрос об обновлении Silverlight / Windows Phone ViewModel - PullRequest
0 голосов
/ 25 сентября 2011

У меня есть страница XAML, в которой DataContext установлен для моей ViewModel. Элемент управления на странице привязан к следующему коду в ViewModel:

public bool TeamLiveTileEnabled
{
    get
    {
        return Data.Subscriptions.Any(s => s.TeamName == this.Team.Name);
    }
}

Когда эта страница инициализируется, Data.Subscription является пустым списком. Я получаю список подписок с помощью асинхронного вызова веб-службы, поэтому он возвращается после вызова вышеуказанного метода получения.

Когда вызов веб-службы возвращается, к Data.Subscription добавляются элементы, и я хотел бы обновить пользовательский интерфейс на основе нового результата выражения LINQ. Сейчас ничего не происходит, и я подтвердил, что Data.Subscription содержит элементы, которые удовлетворяют вышеуказанному условию.

Data.Subscription - это ObservableCollection элементов подписки.

Может кто-нибудь указать мне, что делать? Спасибо!

1 Ответ

1 голос
/ 25 сентября 2011

Проблема в том, что ваша ViewModel не знает о каких-либо изменениях ObservableCollection.В ViewModel подпишитесь на событие CollectionChanged, равное Data.Subscriptions.

Data.Subscriptions.CollectionChanged += SubscriptionsChangedHandler;

В обработчике событий уведомить слушателей о TeamLiveTileEnabled, отправив PropertyChanged уведомление

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