我希望将数据网格中的选定行显示到一些文本框中。问题是,在转换为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 }


发布于 2021-10-13 18:39:38
显然,SelectedItem属性不返回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();
}https://stackoverflow.com/questions/69556765
复制相似问题