将gridcontrol记录作为数组获取

时间:2012-06-11 16:12:40

标签: c# devexpress gridcontrol

如何将gridcontrol记录作为数组?

我将数组设置为datasource的{​​{1}}。

gridcontrol (devExpress component)

现在当用户更改PersonFamily4grid[] tmpPersonFamily = new PersonFamily4grid[PersonFamiliesCOUNT]; for (int i = 0; i < PersonFamiliesCOUNT; i++) { tmpPersonFamily[i] = new PersonFamily4grid(); tmpPersonFamily[i].BirthDate = PersonFamilies[i].BirthDate; tmpPersonFamily[i].Job = PersonFamilies[i].Job; tmpPersonFamily[i].CodeMelli = PersonFamilies[i].CodeMelli; tmpPersonFamily[i].NameFamily = PersonFamilies[i].NameFamily; tmpPersonFamily[i].Nesbat = FamilyInfo_cbe_Nesbat.Properties.Items[PersonFamilies[i].Nesbat].ToString(); tmpPersonFamily[i].Taahol = FamilyInfo_cbe_Taahol.Properties.Items[Convert.ToInt32(PersonFamilies[i].Taahol)].ToString(); } grid_Family.DataSource = tmpPersonFamily; 中的数据时,我希望从网格中获取更改并影响我的基本数组。

2 个答案:

答案 0 :(得分:0)

尝试:

PersonFamily4grid[] personFamily = (PersonFamily4grid[])grid_Family.DataSource;

答案 1 :(得分:0)

  

当用户在gridcontrol中更改数据时,我希望从网格中获取更改   影响我的基础阵列。

如果要反映对主数组PersonFamilies的更改,为什么要创建临时数组?只需将PersonFamilies分配给gridControl的数据源,它就会自动反映对PersonFamilies的更改。

如果您知道类对象是引用类型,那么如果您将数组直接分配给gridControls数据源,它们的引用将不会更改:

grid_Family.DataSource = PersonFamilies;

在网格视图中对数据进行一些更改后,检查PersonFamilies数组的对象是否已更新。它肯定会更新对象数组。

如果您想处理PersonFamilies数组中包含的某些自定义数据,那么您可以获取迭代临时数组tmpPersonFamily,而无需通过GridControl的DataSource属性进行迭代这一切都取决于您如何操纵或反映对主阵列PersonFamilies的更改。

e.g。

for (int i = 0; i < PersonFamiliesCOUNT; i++)
{                
    PersonFamilies[i].BirthDate = tmpPersonFamily[i].BirthDate;
    PersonFamilies[i].Job = tmpPersonFamily[i].Job;
    PersonFamilies[i].CodeMelli = tmpPersonFamily[i].CodeMelli;
    PersonFamilies[i].NameFamily = tmpPersonFamily[i].NameFamily;  
}

希望这有帮助..