我正在尝试插入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并获取行值?
答案 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#编码中枚举此集合。