2011-07-01 75 views
0

我想RowCount屬性的標籤在DataGridView用戶顯示的行數當前綁定到輸出。我嘗試了以下方法: lblArticleCount.DataBindings.Add(「Text」,datagrid,「RowCount」);Windows窗體:綁定的DataGridView RowCount屬性的標籤

首先,它好像它是要去工作正是我想要的方式,但是當DataGridView獲取更新,或多或少行以它的標籤仍保持不變。它不顯示新的行數。

看起來像我的錯誤的方式。你會如何解決它?我的目標是避免對事件做出反應,手動將新計數設置爲標籤。沒有其他辦法嗎?

謝謝。

+0

我的標籤,而綁定到網格的數據源行計數。 –

回答

-1

這可能不是你想要的東西,但它應該工作:

 Label showRowCount = new Label(); 
     DataGridView dgv = new DataGridView(); 
     dgv.RowsAdded += new DataGridViewRowsAddedEventHandler(dgv_RowsCountChanged); 
     dgv.RowsRemoved += new DataGridViewRowsAddedEventHandler(dgv_RowsCountChanged); 
    } 

    void dgv_RowsCountChanged(object sender, DataGridViewRowsAddedEventArgs e) 
    { 
     showRowCount.Text = dgv.RowCount; 
    } 
-1

,它不工作的原因是因爲數據綁定僅僅是一個單一條街道。數據綁定是典型的雙向結合,其中,如果UI元素的變化,那麼業務對象被通知,相反,如果一個業務對象改變時,那麼UI元素的變化。您似乎只實現了單向數據綁定。

+0

所有我寫的是我行我的第一篇顯示。爲了獲得雙向數據綁定,我需要更改什麼? – Patrick

0

爲什麼你不只是計數的dataGridView行數,使用RowsAdded和RowsRemoved evnets? 檢查驗證碼:

public partial class Form1 : Form 
{ 
    int rowsCount; 
    public Form1() 
    { 
     InitializeComponent(); 
     dataGridView1.Columns.Add("col1", "Column 1"); 
     dataGridView1.RowsAdded += new DataGridViewRowsAddedEventHandler(dataGridView1_RowsAdded); 
     dataGridView1.RowsRemoved += new DataGridViewRowsRemovedEventHandler(dataGridView1_RowsRemoved); 
    } 

    private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
    { 
     rowsCount++; 
     CountRows(); 
    } 

    private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e) 
    { 
     rowsCount--; 
     CountRows(); 
    } 

    private void CountRows() 
    { 
     label1.Text = String.Format("Number of all rows {0}", rowsCount); 
    } 
} 
相關問題