Dotnet 4.5 已推广到我们的组织。升级后我的一个 WPF 工具坏了(一个网格不显示任何东西)。
该应用程序有一些绑定到不同来源的数据网格。除了数据类型之外,每个源都是相同的。
所有其他来源都在 100% 工作。
我可以看到包含数据的集合根本没有更新数据网格。我已将网格换成标准 ListBox 并且没有任何变化。
似乎用整个集合替换值是行不通的。如果我迭代并将项目添加到现有列表中,那么它可以工作。
编辑 1: 为什么此 ObservableCollection 上的 CollectionChanged 事件为空?!?
所有数据源的结构如下。
数据绑定:
{Binding Sprints, Source={x:Static ViewModels:CoreViewModel.Instance}}
属性(数据源):
private ObservableCollection<SprintEntity> _sprintsField;
public static ObservableCollection<SprintEntity> Sprints
{
get
{
return Instance._sprintsField;
}
set
{
if (Instance._sprintsField != value)
{
Instance._sprintsField = value;
Instance.RaisePropertyChanged("Sprints");
}
}
}
获取数据的代码(正确获取数据):
public static void GetSprints(int workspaceID, Action<bool, string> callback)
{
var proxy = new NotificationServiceClient();
proxy.GetSprintsCompleted += (sender, e) =>
{
if (e.Error == null)
{
Sprints = e.Result;
callback(true, null);
}
else
{
callback(false, e.Error.Message);
throw e.Error;
}
};
proxy.GetSprintsAsync(workspaceID);
}