Я знаю, что заголовок слишком длинный, я объясню ситуацию: у меня есть представление сетки данных, привязанное к списку:
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 тоже будет удален (или может быть скрыт) * 1010 *
Почему?
После удаления элемента я хочу выбрать первый элемент из сетки данных dataGridView1.Rows[0].Selected = true;
.
Если удалить dataGridView1.Rows[0].Selected = true;
, то все в порядке, элемент 2 виден.