我有一個DataGridView
和一個BindingSource bs
填充使用bs.DataSource = list;
其中list
是BindingList<Item>
。在Winforms中的BindingSource上的CRUD
我只想讓每個更改的Item
都通知它已更改,並且每個已刪除的項目都會通知它被刪除。或者,我想在用戶編輯網格並按下按鈕後訪問已更改,新的和已刪除的項目。
編輯:
public abstract class Item : INotifyPropertyChanged { .......
public Item()
{
Id = IdCounter++;
Pairs = new HashSet<int>();
State = ItemState.NEW;
Name = "#noname";
Note = "";
PropertyChanged += new PropertyChangedEventHandler(Item_PropertyChanged);
}
void Item_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
SetChanged();
}
/* nastaví příznak, že se něco změnilo - to následně vyvolá UPDATE (při použití SQL úložiště) */
public void SetChanged()
{
State = ItemState.CHANGED;
}
當編輯該項目時,該事件未被觸發。我需要檢測列表項的屬性更改。 – Cartesius00 2012-02-20 21:09:14
當你的意思是編輯,你的意思是他們改變DataGridView中的值,然後忽略當前項目,它不會觸發?您的列表項必須實施INotifyPropertyChanged才能使其工作。 – SwDevMan81 2012-02-20 21:15:50
是的!這就是它,但我已經實現了這個接口,但沒有被觸發,:-(換句話說,我的項目實現了'INotifyPropertyChanged',但PropertyChanged事件沒有在「焦點丟失」事件上被觸發。 – Cartesius00 2012-02-20 21:20:51