我有一个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.Subscriptions
的CollectionChanged
事件。
Data.Subscriptions.CollectionChanged += SubscriptionsChangedHandler;
在事件处理程序中通过发送PropertyChanged
通知通知侦听器TeamLiveTileEnabled
NotifyPropertyChanged( "TeamLiveTileEnabled" );