我正在處理BindingList,並且我想要更改它的默認行爲,以便刷新其綁定到的DataGridView,這是在手動引發事件時完成的。在我的情況下,我每隔1秒更新BindingList與foreach循環中的數據,並且在所有內容都是最新的之後,我想刷新DataGridView。我該怎麼辦?更改BindingList的默認行爲
1
A
回答
1
望着MSDN文檔,它看起來像你可以從BindingList<T>
派生並重寫BindingList<T>.SupportsChangeNotificationCore
關閉列表變更通知:
public class MyBindingList<T> : BindingList<T>
{
protected override bool SupportsChangeNotificationCore
{
get { return false; }
}
}
,然後你應該能夠調用ResetBindings()
當你需要更新你的DataGridView的。
但是,如果通過「更新的BindingList」,你剛纔的意思是添加/刪除項目,那麼你可以設置BindingList<T>.RaiseListChangedEvents
爲false,以關閉列表更改通知:
var bindingList = new BindingList<string>();
bindingList.RaiseListChangedEvents = false; // turn off notifications
bindingList.Add("foo"); // no notifications raised
...
bindingList.RaiseListChangedEvents = true; // turn on notifications
bindingList.ResetBindings(); // raise notifications
0
您可以:
- 使用BindingSource到DataGridView綁定包住的BindingList
- 到的BindingSource
- 設置BindingSource.RaiseListChangedEvents = false,所以ListChanged事件不上升(在數據網格不聽變化)
- 更新列表
- 復位RaiseListChangedEvents並呼籲BindingSource.ResetBindings(false)發信號給所有綁定組件刷新數據
平時你也可以使用BindingSource.SuspendBinding以防止改變,並ResumeBinding恢復,但DataGridView的是行不通的,只能用簡單的控制像文本框(見remarks on msdn)
相關問題
- 1. 更改默認行爲5.4
- 2. 如何更改ThickBox的默認行爲?
- 3. 更改默認onListItemClick行爲的ListView
- 4. 更改默認幫助鍵行爲
- 5. 更改php-interbase默認事務行爲
- 6. phpMyAdmin:更改顯示的默認行數?
- 7. 更改網格中的默認行數
- 8. 更改默認庫
- 9. 更改Apache的默認頁面爲PHP
- 10. EXTJS更改GridPanel行選擇的默認行爲
- 11. 更改插件的默認
- 12. 更改默認的build.gradle
- 13. 更改列的默認值
- 14. 更改EnableViewState的默認值
- 15. UIDatePicker更改默認選定行
- 16. emacs更改默認行結束
- 17. 如何更改空的Jbuilder partials的默認行爲?
- 18. 更改默認validation_client_name爲「ORGNAME驗證器」
- 19. CAKEPHP - 將默認路徑更改爲webroot
- 20. 將UIWebView默認顏色更改爲UIImage
- 21. UIButton標題更改爲默認
- 22. 將mysql默認引擎更改爲innodb
- 23. 更改Windows Phone 7中的默認滑塊行爲Silverlight
- 24. 如何更改Rack :: Offline的默認行爲
- 25. 更改掛毯中的默認會話行爲
- 26. 如何更改Iron的默認404行爲?
- 27. 更改默認視圖引擎的視圖搜索行爲
- 28. 如何更改機架離線的默認行爲
- 29. 如何更改jtable中的默認停止編輯行爲
- 30. 更改貨幣格式的默認區域設置行爲
重寫'的BindingList .SupportsChangeNotificationCor'並關閉麗st改變通知,但'ResetBinding()'不起作用。 –
user1816806
2014-09-10 21:35:33
對不起,是的,我剛剛創建了一個測試項目,看起來您需要在調用'ResetBindings'之前設置'RaiseListChangedEvents = true'。編輯我的答案。 – 2014-09-10 21:54:32