2011-03-14 109 views
8

目標:
一旦點擊添加或刪除按鈕,應該使用文檔中的最新數據刷新datagridview。無法使用綁定源刷新datagridview

問題:

在DataGridView不能刪除或 添加新的數據進行更改後刷新 。

我正在使用與datagridview的數據源鏈接的綁定源。

我試着用不同的解決方案的一切,從不同的版面爲已讀建議,但我仍然解決不了這個問題。

我還利用這些語法 「BindingSource.ResetBindings(假)」, 「BindingSource.Refresh()」 等,但沒有結果嘗試。

鏈接如下:

How to refresh a bindingsource

http://www.eggheadcafe.com/community/aspnet/2/10114324/datagridview-refresh-from-another-form.aspx

http://blogs.msdn.com/b/dchandnani/archive/2005/03/15/396387.aspx

http://bytes.com/topic/c-sharp/answers/812061-problem-refresh-datagridview

bSrcStock.DataSource = myProductrepository.GetAllProductList(); 


    dgridStock.DataSource = null; 
    dgridStock.DataSource = bSrcStock; 
    bSrcStock.ResetBindings(true); 


    dgridStock.Columns[0].Width = 101; 
    dgridStock.Columns[1].Width = 65; 
    dgridStock.Columns[2].Width = 80; 
    dgridStock.Columns[3].Width = 120; 
    dgridStock.Columns[4].Width = 90; 
+0

什麼是你的DataGrid的必然?供參考; – Purplegoldfish 2011-03-14 20:21:50

+0

供參考;你不需要設置dgridStock.DataSource = null;如果你還沒有實現BindingSource,那只是一種方法! – Coops 2011-08-04 13:28:19

+1

您的列表項類型是否實現INotifyPropetyChanged接口? – 2011-08-10 21:59:20

回答

2

我都面臨着同樣的問題,結果發現只是呼籲refreshDataGridView方法的問題是與BindingSource的靜態構造函數中初始化(類是單身)。一旦實現這一點,讓我感動的代碼調用事件,它終於無需分配無效或致電清方法處理。希望這可以幫助。

1

無需真正定義列(除非你要...)

然後每次添加或刪除列表的東西一次...

public List<CustomItem> ciList = new List<CustomItem>(); 

    CustomItem tempItem = new CustomItem(); 
    tempItem.Name = "Test Name"; 

    ciList.add(tempItem); 
    refreshDataGridView(); 

    private void refreshDataGridView() 
    { 
     dataGridView1.DataSource = typeof(List<>); 
     dataGridView1.DataSource = ciList; 
     dataGridView1.AutoResizeColumns(); 
     dataGridView1.Refresh(); 
    }