如何访问数据表中与数据网格 WPF 中所选项目相对应的行

问题描述 投票:0回答:1

因此,我得到了一个数据表,其中填充了 SQL 查询,并设置为数据网格的项目源。我想在数据表中的数据网格上找到所选项目并将其添加到新项目中。很抱歉,我知道这可能是一个愚蠢的简单问题,我只是无法理解它,我假设我是否能找到所选项目的索引我可以使用它来访问 datatable.rows[x],但是在我的情况下,用户正在过滤数据网格中的项目,因此必须在我创建的相应数据视图中查找才能执行此操作文本过滤。

编辑:

      private void btnAddPart_Click(object sender, RoutedEventArgs e)
        {
            var item = (DataRowView)dgDocParts.SelectedItem;
            if (item != null)
            {
                DataRow row = item.Row;
                dtDocParts.Rows.Add(row);
            }


            dgDocParts.ItemsSource = dtDocParts.AsDataView();
        }

出于某种原因,在以下答案的帮助下,此代码仍然不显示我尝试添加到数据网格中的新数据表的行。

c# wpf datatable datagrid
1个回答
0
投票

您可以使用 DataGrid.SelectedItem 属性。它具有

object
类型,因此您需要将其转换为 ItemsSource 中项目的具体类型。在本例中它将是 DataRowView,因为 ItemsSource 是 DataView 对象。

DataRowView 包含一行的所有值,可以通过列名称或索引访问这些值,但也具有对原始行的引用:

var item = (DataRowView)dgDocParts.SelectedItem;
if (item != null)
{
   object cellValue1 = item[0];
   object cellValue2 = item["columnName"];
   DataRow row = item.Row;
}
© www.soinside.com 2019 - 2024. All rights reserved.