我想从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 '
类型的表达式
答案 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相同的。 当数据在后端加载时...在特定列表中更新相同...因此,每当网格中的数据发生变化时......列表都会发生变化