Привязка запроса структуры сущностей к Devexpress LookUpEdit и ComboBoxEdit - PullRequest
0 голосов
/ 28 января 2012

У меня есть простая таблица с одним столбцом UrzadSkarbowyWojewodztwo, к которому я пытаюсь прикрепить Entity Framework запрос к ComboBoxEdit или LookUpEdit (желательно для справки). Может кто-нибудь поделиться способом сделать это, учитывая, что я не хочу делать это из графического интерфейса?

Я пробовал несколько способов, и каждый раз это просто не удавалось. Я уверен, что что-то упустил ...

using (var context = new EntityBazaCRM(Settings.sqlDataConnectionDetails))
        {
            IQueryable<UrzedySkarboweWojewodztwa> listaWojewodztw = from d in context.UrzedySkarboweWojewodztwas
                                                       select d;

            //lookUpEdit1.DataBindings.Add("EditValue", listaWojewodztw, "", true);
            lookUpEdit1.DataBindings.Add("EditValue", listaWojewodztw, "UrzadSkarbowyWojewodztwo", true);
            lookUpEdit1.Properties.DataSource = listaWojewodztw.ToList();
            lookUpEdit1.Properties.DisplayMember = "UrzadSkarbowyWojewodztwo";
            lookUpEdit1.Properties.ValueMember = "UrzadSkarbowyWojewodztwo";

            LookUpColumnInfo col = new LookUpColumnInfo("UrzadSkarbowyWojewodztwo", "Województwo", 100) { SortOrder = DevExpress.Data.ColumnSortOrder.Ascending };
            lookUpEdit1.Properties.Columns.Add(col);

Ответы [ 2 ]

0 голосов
/ 09 февраля 2012

Чтобы иметь возможность связать список Entity Framework с DevExpress ComboBoxEdit, необходимо создать дополнительный класс partial с тем же именем, что и object, который мы пытаемся вставить в ComboBoxEdit.В этот класс нам нужно поместить переопределение на ToString() для значения, которое мы хотим отобразить в ComboBoxEdit для пользователя.

public partial class SzkolenieMiejsca : EntityObject {
    public override string ToString() {
        return _MiejsceSzkolenia;
    }
}

Затем мы просто назначаем объекты ComboBoxItemCollection, и Devexpress сделаетостальные.

 using (var context = new EntityBazaCRM(Settings.sqlDataConnectionDetailsCRM))
        {
            IQueryable<SzkolenieMiejsca> listaMiejsc = from d in context.SzkolenieMiejscas
                                                                    select d;


            ComboBoxItemCollection collection = comboBox.Properties.Items;
            collection.BeginUpdate();
            foreach (var miejsce in listaMiejsc)
            {
                collection.Add(miejsce);
            }
            collection.EndUpdate();
            comboBox.SelectedIndex = -1;
        }
0 голосов
/ 29 января 2012

Компоненты на основе LinqServerMode поддерживают привязку в режиме сервера с Entity Framework 4.0:

Режим сервера Linq и Entity Framework 4.0 .

Можно настроить EntityDataContext требуемым образом, чтобы использовать его в качестве источника запроса LinqServerModeSource:

IQueryable<UrzedySkarboweWojewodztwa> listaWojewodztw = 
    from d in context.UrzedySkarboweWojewodztwas
    select d;

...

lookUpEdit1.Properties.DataSource = new LinqServerModeSource() {
        ElementType = ...,
        KeyExpression = ...,
        QueryableSource = listaWojewodztw
    };

...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...