私はこのかなり簡単なことで困惑しているとは思いません。私はもともとWPF DataGridのコードプレックスの議論にこれを掲載しましたが、何の反応もありませんでした。だから私はここで試しています:WPFへのリバインドDatagridのDatacontext
私はこれを行う方法を見つけることができないようです。私は、datacontextが最初にテーブルの行で満たされているDataGridを作成します。条件に基づいていくつかの行を返す検索機能を実装しました。それらの行だけを表示したいと思いますが、最初に作成したdatacontextを破棄して、新しくフィルタリングしたコレクションを追加するにはどうすればよいですか?
私は単純に、このようにそれをやって開始しました:
(後期編集:私はここでジェネリックコードを入力するように見えることはできません - 例えば(がMyTypeにdatagrid.Itemsをキャストするsuppoedされる次の行でキャストを))
IEnumerable rows = datagrid.Items.Cast();
IEnumerable filteredRows = rows.Where(row => row.someCondition == true);
どのようにして、私のデータグリッドにfilteredRowsだけを表示させることができますか?ちょうどやって:
datagrid.DataContext = null;
datagrid.DataContext = filteredRows;
(何らかの理由で愚かなにおいさえします)。
私は逆もしなければなりません。一部のボタンクリックでは、ユーザーが検索結果を「クリア」し、DataContextを「行」に再プラグインする必要があります(上記のスニペット内)。
私には何が欠けていますか?
前にコンテキストを再設定し、あまりにも私のために働きましたか?これはうまくいくはずです。 –
あなたのコードの周りにチックを追加すると、ジェネリックコードも投稿できるはずです。 – Oskar
どうやらそれを行う方法は、そのデリゲート(行をフィルタリングする)をItemsコレクションのFilterプロパティに直接割り当てることです。私は仕事に着くとこれを試してみるつもりです。私は物事がどのようになっているかを報告します。 –