C# 如何将DataGrid列复制到数组C WPF

C# 如何将DataGrid列复制到数组C WPF,c#,wpf,datagrid,C#,Wpf,Datagrid,我正在寻找一个代码来复制一列的Datagrid到一个双数组 Period Acc 0.1 3 1 4 2 7 5.5 10.5 例如,我希望列Perioed有一个双数组。数据网格的名称是dg。我试图找出存在的Q&A,但我发现的都是关于窗口窗体或datagridview的,其中包括行。我发现Rows属性不在datagrid类中,而在datagridview中。有人知道怎么做吗?谢谢,详细的方法是: Period Ac

我正在寻找一个代码来复制一列的Datagrid到一个双数组

  Period   Acc
  0.1      3
  1        4
  2        7
  5.5      10.5

例如,我希望列Perioed有一个双数组。数据网格的名称是dg。我试图找出存在的Q&A,但我发现的都是关于窗口窗体或datagridview的,其中包括行。我发现Rows属性不在datagrid类中,而在datagridview中。有人知道怎么做吗?谢谢,

详细的方法是:

  Period   Acc
  0.1      3
  1        4
  2        7
  5.5      10.5
var colVals = List<double>();
foreach(var row in Datagrid.Rows)
{
     colVals.Add(Convert.ToDouble(row.Cells[0]));
}
也许吧

  Period   Acc
  0.1      3
  1        4
  2        7
  5.5      10.5

编辑:啊,您使用的是Datagrid而不是Datagridview,这取决于您的数据源,不是吗?

@Daloupe是正确的。首先,您是如何填充数据网格的?使用数据源比直接从DataGrid管理数据容易得多。例如,如果数据是从名为data的类对象列表填充的,该类对象具有两个双值Period和Acc,则可以使用源列表上的扩展方法来提取时段值

  Period   Acc
  0.1      3
  1        4
  2        7
  5.5      10.5
// You have a list of Data elements List<Data> gridData that is the data 
// source of your DataGrid
double[] periods = gridData.Select(x => x.Period).ToArray();

是正确的,数据表中的数据首先被传递到datagrid。我希望从datagrid复制的原因是,我可能需要编辑datagrid上的一些数字,然后将其传递到数组进行分析。如果datagrid绑定到数据源,则对网格所做的任何更改都将更改源,反之亦然。无论您是从源抓取数据,还是从网格抓取数据,都是相同的数据。在winForms中,您可以将数据源添加到BindingSource,然后将其用作网格的数据源,但我不确定是否需要使用WPF。有时我需要在datagrid窗口中编辑数字。然后将编辑后的数字传递给数组。谢谢,如果您要将值传递到一个与DataGrid的数据源分离的数组中,并希望使其与当前集合保持同步,则如果进行了更改,您需要订阅事件以基于新的时段值更新数组。不用担心,很高兴提供帮助!