Devexpress: XTrAGRIDVIEVE COLONNE COLONNE COLONNE
-
28-10-2019 - |
Question
Disons que j'ai les deux classes suivantes
public class OtherClass
{
public string OtherName{ get; set; }
}
public class MyClass
{
public string TheName { get; set; }
public int TheAge { get; set; }
}
disons que j'ai lié le XtraGrid
au Object
la source de données (MyClass
)
Maintenant, mon scénario est que je veux remplir la première colonne (TheName
) Lorsque je clique sur le Editor button
avec OtherName
Les valeurs provenaient de la liste de OtherClass
objet (List<OtherClass>
)
puis enfin transférer toute la ligne vers MyClass
objet
est-ce possible?
La solution
Peut-être comme ça:
List<MyClass> mylist = new List<MyClass>();
mylist.Add(new MyClass() { TheName = "Kirk", TheAge = 56 });
mylist.Add(new MyClass() { TheName = "Spock", TheAge = 403 });
mygrid.DataSource = mylist;
mygrid.MainView.PopulateColumns();
List<OtherClass> all_names = new List<OtherClass>();
Ajouter les noms existants ici:
foreach (var item in mylist)
all_names.Add( new OtherClass() { OtherName = item.TheName } );
Continuez avec des noms supplémentaires:
all_names.Add(new OtherClass() { OtherName = "Watson" });
all_names.Add(new OtherClass() { OtherName = "Sherlock" });
Créer RepositoryItemlookupEdit1 via le concepteur
repositoryItemLookUpEdit1.DataSource = all_names;
repositoryItemLookUpEdit1.DisplayMember = "OtherName";
repositoryItemLookUpEdit1.ValueMember = "OtherName";
((DevExpress.XtraGrid.Views.Base.ColumnView)mygrid.MainView).Columns[0].ColumnEdit = repositoryItemLookUpEdit1;
Et vos données devraient être bien
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow