如何在WPF中循环DataGrid?

时间:2014-06-06 20:30:58

标签: c# wpf datagrid

我正在尝试插入DataGrid的所有Rows值,所以我想循环DataGrid行和 插入单元格值,在窗口表单中我使用此代码。

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
    dataGridView1.AllowUserToAddRows = false;
    sale.InsertPerchBill(Convert.ToInt32(textBox1.Text), comboBox1.Text) // Insert function
}

问题是我不知道如何循环DataGrid,因为代码在WPF中不起作用。

如何循环DataGrid并获取行值?

2 个答案:

答案 0 :(得分:0)

您可以遍历数据网格中的项目。如果你有一个绑定到类的网格,你可以输入它。

   for (int i = 0; i < dataGridView.Items.Count; i++)
      (
       YourClass foo = (YourClass)dataGridView.Items[i];
       //do what you need to with that row (item)
      }

尝试创建一个类来表示你的行,我会打电话给我的班级&#34; Person&#34;希望能让它更容易理解。

 public class Person
     {
      //make all appropriate cells into properties of class
      int age;
      int phoneNum;
      string name;
      }

然后创建一个列表(称之为List people)并将所有行对象插入其中。

 List<Person> people = new List<Person>();
 for(int i = 0; i < 10; i++)
  {
   Person tempPerson = new Person(){age=5, phoneNum=5555555555};
   people.Add(tempPerson);
  }

填充完列表后,只需设置项目来源:

   dataGridView1.ItemsSource = people;

您可以设置数据网格,以根据属性名称自动创建列标题。在这种情况下,列标题将是&#39; age&#39;,&#39; phoneNum&#39;和&#34; name&#34;;

答案 1 :(得分:0)

您应该在WPF中使用绑定来执行此操作。 假设您有viewModel,并且您拥有可能是集合或列表的属性。 您应该将此属性绑定到视图中的DataGrid ItemSource,并且可以在c#编码中枚举此集合。