从RadGridview访问数据

时间:2014-09-05 07:53:04

标签: c# wpf telerik radgridview

我想从telerik:radgrid的当前排序视图中获取数据..在按钮上单击我使用以下代码...

DataTable dtRecords = new DataTable();
foreach (Telerik.Windows.Controls.GridViewColumn col in OverallExposureGrid.Columns)
{
      DataColumn colString = new DataColumn(col.UniqueName);
      dtRecords.Columns.Add(colString);
}
foreach (Telerik.Windows.Controls.RadRowItem row in OverallExposureGrid.Items) // loops through each rows in RadGrid
{
    DataRow dr = dtRecords.NewRow();
    foreach (Telerik.Windows.Controls.GridViewColumn col in OverallExposureGrid.Columns) //loops through each column in RadGrid
        dr[col.UniqueName] = row[col.UniqueName].Text;//error 
    dtRecords.Rows.Add(dr);
我犯了一个错误或者是一个不正确的代码来获取数据。 并且还得到以下错误:

  

错误2无法将带有[]的索引应用于' Telerik.Windows.Controls.RadRowItem '

类型的表达式

2 个答案:

答案 0 :(得分:0)

我先解决你的第二个错误:

  

无法将带有[]的索引应用于“Telerik.Windows.Controls.RadRowItem”类型的表达式

每当您看到此错误(无法将带有[]的索引应用于类型为... 的表达式)时,您就可以使用LinQ绕过它:

using System.Linq;

dr.ElementAt(col.UniqueName) = row.ElementAt(col.UniqueName).Text;

现在你是否应该这样做?我会说不,你不应该。使用WPF时,我们通常会绑定数据,因此在您的情况下,您将拥有一个集合属性,比如名为Items。然后,您将数据绑定到ItemsSource的{​​{1}}属性:

RadGridView

一旦<RadGridView ItemsSource="{Binding Items}" ... /> 属性被数据绑定,获取数据就是一个简单的过程...它位于Items属性中:

Items

答案 1 :(得分:0)

在网格中使用dataloaded相同的。 当数据在后端加载时...在特定列表中更新相同...因此,每当网格中的数据发生变化时......列表都会发生变化