0

gridcontrolレコードを配列として取得するにはどうすればよいですか?

配列をのとして設定しdatasourceました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;

これで、ユーザーがでデータを変更したときにgridcontrol、グリッドから変更を取得して、ベース配列に影響を与えたいと思います。

4

2 に答える 2

0

ユーザーが gridcontrol のデータを変更すると、グリッドから変更を取得して、基本配列に影響を与えます。

メイン配列への変更を反映したいのに、なぜ一時配列を作成するのですかPersonFamilies。gridControl のデータ ソースに割り当てるだけで、PersonFamilies自動的に変更が に反映されPersonFamiliesます。

クラス オブジェクトが参照型であることがわかっている場合、次のように配列を gridControls データ ソースに直接割り当てても参照は変更されません。

grid_Family.DataSource = PersonFamilies;

グリッド ビューでデータに変更を加えた後、PersonFamilies配列のオブジェクトが更新されているかどうかを確認します。オブジェクトの配列を確実に更新します。

配列に含まれるカスタマイズされたデータで作業したい場合は、GridControlのプロパティを介して取得せずにPersonFamilies一時配列を反復処理することができます。それはすべて、変更を操作またはメイン配列に反映する方法に依存します。tmpPersonFamilyDataSourcePersonFamilies

例えば

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;  
}

この助けを願っています..

于 2012-06-12T10:10:57.590 に答える
0

試す:

PersonFamily4grid[] personFamily = (PersonFamily4grid[])grid_Family.DataSource;
于 2012-06-11T19:05:34.510 に答える