|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Коллеги, нужен совет по обмену данными между взаимодействующими панелями (UserControl в среде WPF) в рамках одного приложения. Пример взаимодействия: <Пенель А> запрашивает работу <Панели Б>. Для чего обращается к MainWindow (используется интерфейс) передавая имя панели и объект this. MainWindow деактивирует <Панель А>, создаёт <Панель Б> и передает ей управление. Но нужно как-то передать параметры из <Панель А> в <Панель Б>. Сейчас задействуется класс глобальных параметров: 1-ый параметр - имя "глюонного" класса для обмена информацией 2-ой параметр - ссылка на объект "глюонного" класса. Схема передачи данных из <Панель Б> в <Панель А> аналогична. Эта схема меня не устраивает - много "глюонных" классов, нужных только для перемещения данных. Может есть лучшие схемы взаимодействия панелей? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 17:09 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
не понятно, панели не должны ничего передавать, они должны отображать. у окна есть 2 состояния, в 1 состоянии отображается панель А, во втором панель Б. Всё остальное происходит на уровне модели представления. Либо опишите подробнее, чего вы хотите добиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 17:15 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Roman Mejtes, сегодня, 17:15 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21885601][21885601]/url] >...Либо опишите подробнее, чего вы хотите добиться. < 1. Надо передать параметры запуска для <Панель Б> из <Панель А>. 2. Надо передать результаты работы <Панель Б> в <Панель А> 3. Панель есть UserControl в WPF. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 19:04 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, Панель не может иметь результатов работы. Это холст мешковины или подрамник. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 19:20 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, Вам надо разобрать демо пример по событиям и биндингу. Событиям системным, не своим. Типа смена фокуса или мышка. А потом свои события и биндинг. И уже потом приходи с панелью А и Б.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 19:24 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 19:20 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21885684][21885684] >Панель не может иметь результатов работы. Это холст мешковины или подрамник. <см. здесь . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 19:41 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 19:24 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21885685][21885685] >...И уже потом приходи с панелью А и Б.)) <Пришёл. Пример(см.слайд): 1. <Панель А> - Группы 2. <Панель Б> - ввод фрагмента строки фильтра (LIKE) <Панель А> вызывает <Панель Б> и ждет фрагмент строки фильтра ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 20:14 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Petro123, сегодня, 19:20 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21885684][21885684] >Панель не может иметь результатов работы. Это холст мешковины или подрамник. <см. здесь .посмотрел. И что? ВМоисеевПришёл. Пример(см.слайд): Рано пришел. Ничего не сделал. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 20:21 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 20:21 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21885712][21885712] >посмотрел. И что? <тогда посмотри на это (Плитка и Панель - одно и тоже): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 20:47 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеевтогда посмотри на этолучше сначала ты ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 20:57 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 20:57 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21885726][21885726] >лучше сначала ты <Клиника, помочь ничем не могу ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 21:08 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, Я как посмотрю на твои переменные зак, при, хус Так и смотреть не хочется)) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 21:47 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Учитывая, что я виду события и имена у контролов, c MVVM сталкиваться вам не пришлось. А зря, почитайте, поможет ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2019, 15:35 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Petro123, это не хус, а XUC, у него префиксы на английском, имена на русском, суффиксы на эльфийском. Подозреваю, что UC - это UserControl, что такое X я не знаю, может eXtenede, может но тугие трусы, мешают только плохому танцору :) нужно быть толерантнее, не факт, что он сам придумал такой способ именования, возможно это сложившаяся традиция в его компании ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2019, 15:42 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Roman Mejtes, Ты профи - помогай. Я только фразе что панели передают работу возмутился. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2019, 16:07 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, меня гложут жуткие подозрения в знании Вами азов WPF. 1) Вы используете для вывода простого текста Label . Но это элемента для отображения контента данных, а не простого текста. Для текста его, конечно, можно использовать, но он избыточен для этого. Для вывода текста в WPF используется TextBlock - он и является приблизительным аналогом Label из WinForms 2) У Вас в UC не ни одной привязки! То есть UC не отображает данные! А что он тогда отображает? Для чего он, вообще, нужен? 3) Из предыдущих двух пунктов - Вы не знаете сто такое ДАННЫЕ и их ОТОБРАЖЕНИЕ. У Вас, скорее всего, нет понятия об MVVM. WPF очень сильно "заточен" под MVVM. Без MVVM можно использовать, но это крайне неудобно, и трудно. Возникает целая куча неспецифических для WPF проблем. Даже Ваша проблема возникла из-за отсутствия самих ДАННЫХ. Если бы данные были, то задачи их передачи от одного UC другому просто бы не возникло. 4) Вы не знаете что такое компоновка WPF элементов. Свойство Margin используется для задания расстояния между элементами, а не их расположения. Расположение элементов, в основном, определяется различными комбинациями контейнеров: Grid, StackPanel, WrapPanel и т.д. P.S. Мой совет Вам - тормозните чуток и изучите основы. Без этого будет очень трудно создавать WPF приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2019, 19:55 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Eld Hasp, Хороший пост и анализ. Если в WinForm можно писать как угодно, то тут не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 11:33 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Petro123Eld Hasp, Хороший пост и анализ. Если в WinForm можно писать как угодно, то тут не получится.В WinForms тоже как попало нельзя. Просто по какой-то неведомой мной причине большинство "студенческих" WF приложений пишется без разделения данных и их отображения. А с таким подходом ничего серьёзного не напишешь. Скорее всего, это связанно, с отсутствием в WF привязок. И, соответственно, для реализации полноценного MVVM надо кастомно в View реализовывать прослушку всех свойств ViewModel. Это сложно для подавляющего большинства преподавателей. И, соответственно, они не учат этому студентов. Но в WF довольно просто использовать MVC паттерн. В нём уже функция обновления View возложена на контролер. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 12:32 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Eld HaspВ WinForms тоже как попало нельзя.нельзя но работать будет (с). Сколько лет без биндинга писали). А здесь работать не будет. Eld HaspПросто по какой-то неведомой мной причине большинство "студенческих" WF приложений пишется без разделения данных и их отображения. Значит не успевают по расчасовке). Скажу по секрету, что иногда и MV*** оверхед и не нужен. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 12:42 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, вчера, 19:55 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21887597][21887597] >1) Вы используете для вывода простого текста Label... <Спасибо, учту. >2) У Вас в UC не ни одной привязки! <Зачем она в данном случае? Этого вполне достаточно - txb_ГруппыПФ.Text = (xuc as uc_Группы).str_ГруппаПФ; Я инженер и плодить лишнее - не мой стиль. >3) Из предыдущих двух пунктов … <Столько букв и столько же пустоты. >4) Вы не знаете что такое компоновка WPF элементов… <Использую Visual Studio, это её работа. >P.S. Мой совет Вам - тормозните чуток и изучите основы. Без этого будет очень трудно создавать WPF приложения. <А это мой Вам совет - смотрите в корень задачи и не увлекайтесь подгонкой под модное. Лишнее надо нещадно удалять. Случайно обнаружил, что графические элементы в UserControl есть public. Удалю все ненужные "глюонные" классы ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 13:27 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев<Зачем она в данном случае? Этого вполне достаточно - txb_ГруппыПФ.Text = (xuc as uc_Группы).str_ГруппаПФ; Я инженер и плодить лишнее - не мой стиль.ВМоисеев>4) Вы не знаете что такое компоновка WPF элементов… <Использую Visual Studio, это её работа.С таким подходом не надо вообще брать WPF - это лишнее. WinForms вполне достаточно и проще. А взяв WPF ты нарушаешь свой собственный совет:ВМоисеевне увлекайтесь подгонкой под модноевот именно это ты сейчас и делаешь, взял модный фреймворк, разбираться как он работает не хочешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 14:28 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Я инженер и плодить лишнее - не мой стиль. Как инженер инженеру. Можно взять молоток (Модель) забить гвоздь и рассматривать его в микроскоп (View). А можно заявить - зачем плодить лишние сложности и забить гвоздь микроскопом. WPF элементы - это средства отображения данных. Можно ли их использовать для работы с самими данными. Конечно, можно. Также как и микроскопом забить гвоздь. Но эффективно ли это? Однозначно - нет! В каких-то микро применениях, так ещё получится сделать. Но даже маленькое приложение уже вряд ли. Как и с микроскопом - забить один-два гвоздя получится. А вот сколотить полочку уже вряд ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 14:43 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
из всех местных преподов ни один не дал ссылку хоть на одну свою прогу (исключение - бешеный меринос) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 15:52 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ViPRosиз всех местных преподов ни один не дал ссылку хоть на одну свою прогу (исключение - бешеный меринос)а где твоя на WPF? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 16:13 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, егодня, 14:43 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21887858][21887858] >...Но эффективно ли это? Однозначно - нет!... <Сударь, Вы хоть вдумайтесь, что за ахинею несёте - здесь же не митинг - я прошу коллег дать совет (идею) как обмениваться информацией между панелями (UserConrtol). Идея использования дополнительных ("глюонных") классов мне не понравилась, обсасываю вариант, когда класс А напрямую забирает информацию из графических элементов класса Б. Посмотрю с чем столкнусь. Сейчас примерно так пытаюсь получить параметры фильтра: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
так использую: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 16:20 |
|
|
start [/forum/topic.php?fid=21&fpage=3&tid=1440327]: |
0ms |
get settings: |
11ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 268ms |
total: | 411ms |
0 / 0 |