0

グリッド ビューでアイテムを編集しようとすると、「'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}" />

4

0 に答える 0