如何在 WPF C# 的 DataGrid 的文本框中获取选定的行值
How to get the selected Row values in TextBoxes for DataGrid in WPF C#
我想将数据网格中的选定行显示到某些文本框中。问题是它在转换为 DataRowView 时在第 4 行变为 null。这是为什么?
1 private void dataGridView_SelectionChanged(object sender, SelectionChangedEventArgs e)
2 {
3 DataGrid grid = (DataGrid)sender;
4 DataRowView selected_row = grid.SelectedItem as DataRowView;
5
6 if (selected_row != null)
7 {
8 comboBoxCategory.Text = selected_row["Category"].ToString();
9 textBoxBrand.Text = selected_row["Brand"].ToString();
10 textBoxName.Text = selected_row["Name"].ToString();
11 textBoxCount.Text = selected_row["Count"].ToString();
12 textBoxPrice.Text = selected_row["Price"].ToString();
13 }
14 }
显然 SelectedItem
属性 没有 return DataRowView
。
假设您已经定义了类型,要么转换为适当的类型,要么使用 dynamic
关键字:
private void dataGridView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid grid = (DataGrid)sender;
dynamic selected_row = grid.SelectedItem;
comboBoxCategory.Text = selected_row.Categorie.ToString();
textBoxBrand.Text = selected_row.Merk.ToString();
textBoxName.Text = selected_row.Naam.ToString();
textBoxCount.Text = selected_row.Aantal.ToString();
textBoxPrice.Text = selected_row.Prijs.ToString();
}
我想将数据网格中的选定行显示到某些文本框中。问题是它在转换为 DataRowView 时在第 4 行变为 null。这是为什么?
1 private void dataGridView_SelectionChanged(object sender, SelectionChangedEventArgs e)
2 {
3 DataGrid grid = (DataGrid)sender;
4 DataRowView selected_row = grid.SelectedItem as DataRowView;
5
6 if (selected_row != null)
7 {
8 comboBoxCategory.Text = selected_row["Category"].ToString();
9 textBoxBrand.Text = selected_row["Brand"].ToString();
10 textBoxName.Text = selected_row["Name"].ToString();
11 textBoxCount.Text = selected_row["Count"].ToString();
12 textBoxPrice.Text = selected_row["Price"].ToString();
13 }
14 }
显然 SelectedItem
属性 没有 return DataRowView
。
假设您已经定义了类型,要么转换为适当的类型,要么使用 dynamic
关键字:
private void dataGridView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid grid = (DataGrid)sender;
dynamic selected_row = grid.SelectedItem;
comboBoxCategory.Text = selected_row.Categorie.ToString();
textBoxBrand.Text = selected_row.Merk.ToString();
textBoxName.Text = selected_row.Naam.ToString();
textBoxCount.Text = selected_row.Aantal.ToString();
textBoxPrice.Text = selected_row.Prijs.ToString();
}