0

アプリケーションでオブジェクトの境界付きリストを持つ DataGridView を使用しています。ので、私は持っています:

grid.DataSource = Files.Instance.List;

私のフォームロードイベントでは、2つのボタンが必要です-リストからアイテムを追加および削除するため(グリッドからも)、次のように簡単にする必要があります。

if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    Files.Instance.List.Add(new DelphiFile { FilePath = openFileDialog.FileName });
    grid.Refresh();
}

ここでは開始パスのみを設定しています。残りのパラメーターはグリッド ビューでユーザーが設定できるようにしたかったのです。アイテムは正しく追加されましたが、残念ながらリストに表示されません。なぜですか?

アイテムの削除にも問題があります。

foreach(DataGridViewRow row in grid.SelectedRows)
{
   Files.Instance.List.Remove(row.DataBoundItem as DelphiFile);
}
grid.Refresh();

アイテムは正しく削除されますが、グリッドが更新されないようで、グリッドの最後のアイテムに :O よりも値がないため、例外が発生します。

私は何を間違っていますか?

4

1 に答える 1