如何在 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();
}