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