настроить столбцы представления данных, чей источник данных взят из linq - PullRequest
0 голосов
/ 05 июля 2011

У меня есть библиотечная функция, которая возвращает список объектов домена из запроса Linq.

IList<Apple> getApplesByCriteria( ... );

Я связываю свойство DataSource объекта DataGridView с результатом этой функции.Все работает хорошоТеперь я хочу манипулировать свойствами Apple.Объект представления домена (UIApple) отличается от объекта исходного домена (Apple), где

UIApple map( Apple apple );

преобразует один в другой.

Если я создаю промежуточный класс - UIApple, что мне нужно сделать, чтобы сохранить редактирование DataGridView обратно в базу данных?Я узнал, что добавление [Browsable(false)] может скрыть столбец.Однако я бы предпочел не 1) загрязнять доменные объекты концепциями пользовательского интерфейса;2) изменить автоматически сгенерированный исходный код.

1 Ответ

0 голосов
/ 11 июля 2011

Я создал UIApple, который поддерживается Apple и содержит весь код манипуляции.

Например:

class Apple {
    // generated by Visual Studio
    public int Color { ...
}

class UIApple {
    private Apple _domain;
    public string Color 
    {
         get { if(_domain.Color == 0) return "Black"; }
         set { if(value == "Black") _domain.Color = 0; }
    }
    // hide all unwanted attributes        
}

Для сохранения в конце редактирования,

UIApple uiApple;

// some editing through UI

// to commit -
db.SubmitChanges();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...