C# BindingSource.Current Обновляет более одного значения - PullRequest
0 голосов
/ 11 апреля 2020

У меня возникли некоторые проблемы с обновлением текущих выбранных данных из источника привязки, я продемонстрирую свою проблему на следующем простом примере.

У меня есть класс

class Item
{
   int id;
   string Name;
   int Qty;
}

в Form1, у меня есть datagridview, его источник привязки - это тип класса Item, и он называется ItemBindingSource. у меня есть кнопка btnAdd, при нажатии она выполняет следующие действия:

Item itm = new Item();
itm.ID =1;
itm.Name = "test";
itm.Qty = 1;
itemBindingSource.Add(itm);

, когда я нажимаю на btnAdd, объект элемента создается и добавляется к источнику ставок, и я также могу видеть его в сетке данных. ,

проблема здесь, у меня есть другая кнопка btnIncQty, которая при нажатии увеличивает количество на 1 текущей выбранной строки.

void btnIncQty_Onclick(object sender,EventArgs e)
{
 (ItemBindingSource.Current as Item).Qty += 1;
 Datagridview.Refresh();
}

что здесь происходит, если у меня есть две или более строки, добавленные в datagridview и ItemBindingSource, все количество строк увеличивается на 1, а не только текущая выбранная строка, хотя я использую ( ItemBindingSource.Current as Item) .Qty + = 1; как я указал в примере выше.

Я не могу понять, в чем проблема и почему все данные в BindingSource обновляются, а не только выбранные, может кто-нибудь посоветовать, что может быть причиной этой проблемы?

Спасибо

...