2010年7月16日金曜日

DataTableをBindingSourceのDataSourceに設定したときの注意点

ADO.NETのDataTableをBindingSourceのDataSourceに設定して、BindingSourceのFilterに条件を設定したとき、DataTable.DefaultViewのRowFilterに、BindingSourceのFilterの内容が設定されるみたい。
このため、1つのDataTableをBindingSourceのDataSourceやComboBoxのDataSourceなど、複数のコントロールのDataSourceに使用すると、どれか1つのコントロールでFilterを設定すると、すべてのコントロールでFilterがかかった状態になる。

これを回避するために、1つのDataTableを複数のコントロールのDataSourceとして使いたいときは、各コントロールのDataSourceにそれぞれDataViewを(DataTableから)生成して設定すればよい。

0 コメント :

コメントを投稿