Silverlight/Windows Phone ViewModel更新问题



我有一个XAML页面,其DataContext被设置为我的ViewModel。页面上的开关控件被绑定到ViewModel中的以下代码:

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

初始化该页时,Data。订阅是一个空列表。我通过异步web服务调用检索订阅列表,所以它会在上面的getter调用后返回。

当web服务调用返回时,Data。订阅中添加了项,我希望UI根据LINQ表达式的新结果进行更新。现在什么都没发生,我确认了数据。订阅包含满足上述条件的项。

数据。订阅是订阅项的ObservableCollection。

谁能告诉我该怎么做?谢谢!

问题是您的ViewModel不知道ObservableCollection的任何更改。在ViewModel中,订阅Data.SubscriptionsCollectionChanged事件。

Data.Subscriptions.CollectionChanged += SubscriptionsChangedHandler;

在事件处理程序中通过发送PropertyChanged通知通知侦听器TeamLiveTileEnabled

NotifyPropertyChanged( "TeamLiveTileEnabled" );

最新更新