DataGrid wpf 逐行获取每个列的数据
时间: 2024-09-30 09:06:13 浏览: 40
DataGrid是Windows Presentation Foundation (WPF)框架中的一个控件,用于显示表格数据。如果你想从每一行逐列获取数据,你可以通过以下几个步骤操作:
1. **绑定数据**: 首先,你需要将数据源(如一个列表、数组或业务对象)绑定到DataGrid的ItemsSource属性上。
```xml
<DataGrid ItemsSource="{Binding YourDataSource}" AutoGenerateColumns="True">
<!-- 如果不需要自动生成列,可以手动添加列 -->
</DataGrid>
```
2. **访问行和列**: 使用`ItemContainerGenerator`获取当前选中的行,并通过`Column Headers`获取列名。
```csharp
DataGrid dg = FindName("YourDataGridName");
var rows = dg.Items.Cast<object>().Select(item => dg.ItemContainerGenerator.ContainerFromItem(item));
foreach (var row in rows)
{
var dataRow = (DataRowView)row;
foreach(DataGridColumn column in dg.Columns)
{
string columnName = column.Header.ToString();
object cellValue = dataRow[columnName];
// 这里cellValue就是对应列的数据
Console.WriteLine($"Row {dataRow.RowNumber}, Column: {columnName}, Value: {cellValue}");
}
}
```
在这个例子中,`dataRow[columnName]`会返回该行对应指定列的值。
阅读全文