11522


以下のようにDataGridViewのDataSourceにBindingSourceを  
設定してBindingSourceのDataSourceにDataTableを  
設定してFormのDataGridViewを構築した場合の  
DataGridViewのデータ削除方法を教えてください。  
今一うまくいかずはまっております。。  
初歩的な質問かもしれませんがご教示頂きたく  
よろしくお願いいたします。

以下ソースを簡略化した例となります。

[code]

    public partial class HogeForm : Form
    {
        DataGridView dataGridView = new DataGridView();
        BindingSource bindingSource = new BindingSource();
    
        private void InitDataGridView()
        {
            DataTable dataTable = new DataTable("hoge");
            this.bindingSource.DataSource = dataTable;
            this.dataGridView.DataSource = bindingSource;
    
            DataTable table = 
              ((DataView)((BindingSource)this.dataGridView.DataSource).List).ToTable();
            DataRow row = table.NewRow();
            ~~rowにデータを設定(省略)~~
            table.Rows.Add(row);
            this.bindingSource.DataSource = table;
        }
    
        private void ClearDataGridView()
        {
             ?? <- DataGridViewの内容をクリアするにはどうすればよいですか？
        }
    }
    
[/code]


CC BY-SA 3.0
2015-06-19T09:30:45.430
11515
2015-06-21T23:51:40.867
2015-06-21T23:51:40.867
9228
9228
question
c# winforms
C# BindingSource DataTable を使ったDataGridViewのデータ削除方法教えてください


単純にデータを消す場合は以下の通りです。

[code]

    ((DataTable)bindingSource.DataSource).Clear();
    
[/code]

なお質問のコードは`ToTable()`でデータを作成しているので当てはまらないと思いますが、削除ではなく削除状態にする場合は

[code]

    foreach (var dr in ((DataTable)bindingSource.DataSource).Rows.Cast<DataRow>().ToArray())
    {
        dr.Delete();
    }
    
[/code]

のように各行の状態を変更します。


CC BY-SA 3.0
2015-06-19T10:56:21.960
11522
2015-06-19T21:16:17.447
2015-06-19T21:16:17.447
5750
5750
11515
answer