当我尝试在网格视图中编辑项目时,出现异常“此视图不允许使用‘EditItem’”。这是因为我将数据网格绑定到 LINQ 查询。我的问题是如何过滤我的原始项目集合?我是否必须创建另一个 ObservableCollection(或其他任何实现 IList)并在那里复制我过滤的项目?
编辑:我知道将数据复制到 ObservableCollection 是可行的。我的问题是:给定原始集合,是否有一种内存高效(恒定的内存复杂度)方法来过滤和/或排序集合并使其在网格视图中可编辑?
private readonly ObservableCollection tasks = new ObservableCollection();
public IEnumerable OrderedTasks
{
get
{
return this.tasks.Where(t => !t.Complete);
}
}
<DataGrid ItemsSource="{Binding OrderedTasks}" />