DevExpress: XtraGridView Пользовательская привязка столбцов - PullRequest
2 голосов
/ 11 сентября 2011

Допустим, у меня есть два следующих класса

public class OtherClass
{
    public string OtherName{ get; set; }
}

public class MyClass
{
    public string TheName { get; set; }
    public int TheAge { get; set; }
}

Допустим, я связал XtraGrid с источником данных Object (MyClass)

Теперь, мой сценарий заключается в том, что я хочу заполнить первый столбец (TheName), когда нажимаю Editor button значениями OtherName из списка OtherClass объекта (List<OtherClass>)

затем, наконец, передайте всю строку обратно MyClass объекту

это возможно?

1 Ответ

0 голосов
/ 07 декабря 2011

может быть так:

        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>();

добавить существующие имена здесь:

        foreach (var item in mylist)
            all_names.Add( new OtherClass() { OtherName = item.TheName } );

продолжить с дополнительными именами:

        all_names.Add(new OtherClass() { OtherName = "Watson" });
        all_names.Add(new OtherClass() { OtherName = "Sherlock" });

создать репозиторийItemLookUpEdit1 через дизайнер

        repositoryItemLookUpEdit1.DataSource = all_names;
        repositoryItemLookUpEdit1.DisplayMember = "OtherName";
        repositoryItemLookUpEdit1.ValueMember = "OtherName";
        ((DevExpress.XtraGrid.Views.Base.ColumnView)mygrid.MainView).Columns[0].ColumnEdit = repositoryItemLookUpEdit1;

и ваши данные должны быть в порядке

...