|
Работа в одной форме с DevGrid и разными источниками List<T>
|
|||
---|---|---|---|
#18+
День добрый! Есть форма с расположены на ней Gridом. Как правильнее организовать работу с одной формой и несколькими источниками List. Например, пользователь может работать со справочником продукции List или контрагентами List. Соответственно при добавлении нового продукта открывается форма нового продукта. Пока организовал банально в виде Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
ListMode - обычный enum ListMode {Production, Kontragent} private ListMode _currListMode; инициализируется как ListMode.Production при создании формы, переключается Код: c# 1. 2. 3. 4. 5. 6.
а метод соответственно вызывает создание нового элемента продукции и показ формы продукции, с прибинденными полями класса Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Вопрос в том можно ли как нить избежать дублирование обработчиков (новый элемент, редактирование и т.д.) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2017, 14:12 |
|
Работа в одной форме с DevGrid и разными источниками List<T>
|
|||
---|---|---|---|
#18+
автор представте себя на нашем месте и прочитайте сообщения, лично я не понял сути проблемы, от куда код из 1 отрывка? из события ButtonClick ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2017, 16:39 |
|
Работа в одной форме с DevGrid и разными источниками List<T>
|
|||
---|---|---|---|
#18+
В данном случае да. Т.е пользователь щелкнул по кнопке Add в режиме ListMode.Production - открылась форма продукции, иначе - контрагентов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 06:00 |
|
Работа в одной форме с DevGrid и разными источниками List<T>
|
|||
---|---|---|---|
#18+
В случае с формой- понятно Код: c# 1. 2. 3. 4. 5. 6.
а вот как правильно в форму передавать еще произвольный класс? Т.е. для формы контрагентов передать класс Kontragent? без кучи свитчей и ифов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 07:17 |
|
Работа в одной форме с DevGrid и разными источниками List<T>
|
|||
---|---|---|---|
#18+
Crazy_Wolf, Сделать "родительский" класс, от которого отнаследовать и продукцию, и контрагентов, и прочих. Не кошерно? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 09:09 |
|
Работа в одной форме с DevGrid и разными источниками List<T>
|
|||
---|---|---|---|
#18+
Ну в принципе можно, как раз сейчас этот вариант пробую. Только там из общий полей только ИД и наименование :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 09:21 |
|
Работа в одной форме с DevGrid и разными источниками List<T>
|
|||
---|---|---|---|
#18+
Crazy_Wolf, Я так понял, что речь идёт о "справочниках". Значит как минимум у них должны быть методы "Добавить", "Изменить", "Удалить". Объявить их в классе "родителя" как переопределяемые методы. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 09:34 |
|
Работа в одной форме с DevGrid и разными источниками List<T>
|
|||
---|---|---|---|
#18+
Форма вообще ничего не должна знать о специфической логике данных, с которыми работает. Как выше сказали, об этом должен знать словарь. Вынести его контракт в общий интерфейс/базовый класс, параметризовать форму интерфейсом, у интерфейса дергать нужные методы. Реализация интерфейса внутри будет делать то, что нужно. P.S. WPF на эту тему хорошо мозги вправляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2017, 11:16 |
|
|
start [/forum/topic.php?fid=20&msg=39455088&tid=1399900]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 288ms |
total: | 542ms |
0 / 0 |