我知道标题太长,我会解释一下情况:我将数据网格视图绑定到列表:
BindingList<MyViewModel> _list = new BindingList<MyViewModel>
{
new MyViewModel{ Num =1 , Val ="test"},
new MyViewModel{ Num =2 , Val ="test1"},
new MyViewModel{ Num =3 , Val ="test2"},
};
dataGridView1.DataSource = _list;
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.MultiSelect = false;
我绑定了事件来监听 Delete 命令:
dataGridView1.KeyDown += (s, ev) =>
{
if (ev.KeyCode == Keys.Delete)
{
var item = dataGridView1.SelectedRows[0].DataBoundItem as MyViewModel;
if (item != null)
{
_list.Remove(item);
dataGridView1.Rows[0].Selected = true;
}
}
};
和视图模型看起来像:
public sealed class MyViewModel
{
public string Val { get; set; }
public int Num { get; set; }
}
在网格中我将有 3 个项目:如果我删除项目 3,项目 2 也会被删除(或者可能隐藏)
为什么 ?
删除一个项目后,我想从数据网格中选择第一个项目dataGridView1.Rows[0].Selected = true;。
如果我删除dataGridView1.Rows[0].Selected = true;则很好,项目 2 是可见的。
胡子哥哥
相关分类