2011-07-01 64 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); 
    } 
} 
相关问题