私はC#と.NETの初心者ですが、次の問題が発生しています(.NET 4.5を使用)。
xmlファイルからのデータを表示する必要がある3つのDataGridViewがあります。各DataGridはその結果をフィルタリングする必要があるため、xmlエントリは3つのDataGridViewに分散されます。
私は次のことを試しました:
DataSet dataSet1 = new DataSet();
dataSet1.ReadXml('some-existing-file.xml');
DataTableCollection tables = dataSet1.Tables;
DataView view1 = new DataView(tables[0]);
BindingSource source1 = new BindingSource();
source1.DataSource = view1;
source1.Filter = "color = 'red'";
gridView1.DataSource = source1;
BindingSource source2 = new BindingSource();
source2.DataSource = view1;
source2.Filter = "color = 'white'";
gridView2.DataSource = source2;
BindingSource source3 = new BindingSource();
source3.DataSource = view1;
source3.Filter = "color = 'blue'";
gridView3.DataSource = source3;
しかし、これは機能しません。3つのGridViewはすべて、最後のフィルター(「青)」を使用します。
XMLは次のようになります(簡略化):
<?xml version="1.0" encoding="utf-8"?>
<collection>
<entry>
<color>blue</color>
<headline>Some headline</headline>
</entry>
[...]
</collection>
そして、変更をxmlファイルに書き戻したいときに、同じデータセットを正しい方法でフィルタリングしているだけですか?