如何从DataGrid列单元格中读取?

时间:2012-06-28 10:47:33

标签: c# asp.net silverlight xaml datagrid

我现在正在解决这个问题大约2天,并在许多主板上搜索解决问题的解决方案:(

我在我的DataGrids列中通过linq XML Attributes编写了名为“Betrag”的

现在我想获得所有这些条目,然后将它们总计为一个数字(该列的所有条目都是数字!)。

我希望有人可以帮我解决这个问题。

最诚挚的问候, 费边

现在有些代码:

        data = new List<Daten>();
        data = (from datensatz in doc1.Descendants("datensatz")

                            select new Daten

                            {
                                //datum = "27.6.2012",
                                datum =datensatz.Attribute("datum").Value,
                                //zweck = "Eröffnung",
                                zweck =datensatz.Attribute("zweck").Value,
                                //empfang = benutzer,
                                empfang =datensatz.Attribute("empfang").Value,
                                //betrag = "0€"
                                betrag =datensatz.Attribute("betrag").Value + "€"

                            }).ToList();


                this.Daten.ItemsSource = data;
                //THIS CODE ADDS THE ATTRIBUTES TO MY GRID

然后我试了一下:

kontostand += Convert.ToInt32(Daten.Columns[3].GetCellContent(1).ToString());

2 个答案:

答案 0 :(得分:1)

为什么不做这样的事情......

var sum = data.Sum(item=>item.betrag);//you might have to parse as number.

您可以将该值放在页面上的属性中,然后将数据绑定表达式放在您想要显示值的任何位置。

我认为你应该避免尝试对单元格中的值求和。

另外,我认为如果可能的话,你应该将betrag属性设为整数。您始终可以通过在前面的代码上使用String.Format来添加符号。

答案 1 :(得分:0)

这:

kontostand += Convert.ToInt32(Daten.Columns[3].GetCellContent(1).ToString());

如果它是一个asp网格应该是这样的:

kontostand += Convert.ToInt32(Daten.Rows.Cells[3].innerText);

如果没有,则需要循环行。