|
Взаимодействие 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 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Eld Hasp, вчера, 19:55 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21887597][21887597] >P.S. Мой совет Вам - тормозните чуток и изучите основы. Без этого будет очень трудно создавать WPF приложения. <А это мой Вам совет - смотрите в корень задачи и не увлекайтесь подгонкой под модное. Лишнее надо нещадно удалять. Не зная в целом что Вы реализуете, сделал очень простой пример для иллюстрации. Для WPF практически всегда нужны реализации интерфейсов Icommand и INotifyPropertyChanged Использую такую реализацию - INotifyPropertyChanged Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
И такую реализацию - Icommand Код: 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
Для соединения с UC объявляю интерфейс и его реализацию Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Сам UC Код: 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. 35.
ViewModel Код: 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. 34. 35.
И само окно Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
Из этого примера видно, что при правильной реализации WPF решения, задачи передачи данных от одной View другой (от панели к панели, от UC к окну и т.п.) даже не возникает. Все элементы View только ОТОБРАЖАЮТ данные, а хранятся они уже на уровне VM или Model и там же обрабатываются. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 16:20 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Petro123ViPRosиз всех местных преподов ни один не дал ссылку хоть на одну свою прогу (исключение - бешеный меринос)а где твоя на WPF? в игрушки не играю :) некогда ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 16:21 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Eld Hasp, не, так не пойдет это принудительное изменение а Моисей берет когда хочет ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 16:26 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ViPRosEld Hasp, не, так не пойдет это принудительное изменение а Моисей берет когда хочетНе понял о чем Вы. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 16:29 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ViPRosв игрушки не играю :) некогда ну понятно. Не играю, не предлагаю, не анализирую. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 16:49 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеевСударь, Вы хоть вдумайтесь, что за ахинею несёте - здесь же не митингВместо 100 страниц обсуждения (твоего кода) попробуй пример штатный в WPF что показывают. На моей памяти ты ни разу не пробовал примеры из доков и от своих товарищей. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 16:58 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, сегодня, 16:20 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21887876][21887876] >Не зная в целом что Вы реализуете… <Вообще-то в целом реализую информационную систему в формате двухзвенки на базе WPF. Конкретный пример показывает реализацию взаимодействия панели А, работы с таблицей <Группы>, и панели Б ввода строкового фрагмента фильтра. Панель А есть UserControl для работы с таблицей <Группы> (см. слайд). Пользователь, используя панель Б, уточняет запрос на построение выборки из таблицы. К примеру, если введет <Х>, то в списке грида панели А останется <Хранилище>. Итак панель А: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
вызывая панель Б работы с фильтром, применяя интерфейс MainWindow Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
пользователь загружает панель Б (её не было в момент выполнения команды при.uc_ДобавитьФ("uc_Группы_Фильтр", (Object)this);) это по завершению ввода фрагмента фильтра выполняется это - private void btc_Выбор_Click… и панель Б ликвидируется. Обработка выбора в панели А: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Я не в восторге от Вашего кода и думаю, что ещё более разительно будет отличаться коды всего приложения или хотя бы коды панели А. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 23:16 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Eld Hasp, сегодня, 16:20 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21887876][21887876] >Не зная в целом что Вы реализуете… <Вообще-то в целом реализую информационную систему в формате двухзвенки на базе WPF. Конкретный пример показывает реализацию взаимодействия панели А, работы с таблицей <Группы>, и панели Б ввода строкового фрагмента фильтра. Панель А есть UserControl для работы с таблицей <Группы> (см. слайд). Пользователь, используя панель Б, уточняет запрос на построение выборки из таблицы. К примеру, если введет <Х>, то в списке грида панели А останется <Хранилище>. Я не в восторге от Вашего кода и думаю, что ещё более разительно будет отличаться коды всего приложения или хотя бы коды панели А. Я интересуюсь за Ваше приложение в целом. Вы же пишите за то какие используете инструменты для реализации. Дело Ваше, конечно. Но то как Вы подходите к реализации, какие используете инструменты для этого - это не типичный для WPF подход. Ваш подход очень сильно затрудняет создание приложения в целом, так как типовые решения в WPF основаны на совершенно ином подходе к реализации. Кроме проблем с самой реализацией в Вашем подходе, возникают проблемы и с информацией. Так как так ни кто не делает, некому Вам и подсказать как же это можно реализовать. Всю информацию Вам приходится добывать и раскапывать самостоятельно. Я понимаю, что мой код Вам не понятен или не нравится, но это не изменяет того факта, что он сделан в типичном для WPF решения подходе. И там где с Вашим подходом придётся провозится неделю и с неизвестным результатом, в типов можно сделать за несколько часов. И даже если что-то не получается, то есть к кому обратиться за помощью. Так как таким образом делают все. Для всех такие решения прозрачны, читаемы и понятны. В них проще разобраться, найти ошибки и поправить. И это не просто какой-то "заговор" программистов - это официальный подход разработчика Net и WPF - фирмы MicroSoft. WPF специально "затачивается" и оптимизируется под MVVM паттерн. Он и разработан по сути именно для реализации этого паттерна. Ещё раз говорю - дело Ваше. Но то как Вы делаете, это трудно, долго, нетипично. Вы значительно, в десятки раз, сами себе затрудняете создание приложений. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2019, 23:51 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, Что я и говорил. Вы никогда не примите "не ваш код". Продоожайте хоть 100 страниц, если будут желающие. Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 10:25 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, вчера, 23:51 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21887964][21887964] >...это не типичный для WPF подход… <Согласен, видимо действительно так. При моём подходе инфосистема реализуется множеством приложений. Каждое приложение есть <MainWindow, множество UserVontrol (рабочие панели), класс глобальные переменные>. Я хочу, чтобы пользователь имел на рабочем столе только тот инструмент, что необходим в данный момент по сути решаемой задачи. Если он работает с информацией Хранилища приложений, то использует только приложение Хранилище, остальные не загружаются. Если занимается с информацией по сотрудникам, то применяет приложение - Сотрудники и т.п. Допустим использует в данный момент работает с панелью <Приложения> приложения <Хранилище>. Пример на слайде. Сканируя список сущностей <Приложения> в гриде, находит, что надо поменять поле <Группа> в конкретной сущности. Инструмента (панель Группа) работы с сущностью <Группа> на рабочем столе пока нет. Двойной клик на поле Группа выбранной строки грида активизирует загрузку панели Группа. Она занимает рабочую зону стола (MainWindow), панель Приложения становиться неактивной - сдвигается в зону ожидания рабочего стола, функциональные кнопки удаляются, чтобы не мозолили глаза. Пользователь переключается на работу с панелью Группы. По завершению работы панели Группы, если осуществлён выбор нужной группы, осуществляется подстановка в поле Группа выбранной строки панели Приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 14:37 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеевЕсли он работает с информацией Хранилища приложений, то использует только приложение Хранилище, остальные не загружаются.это никак не мешает использовать MVVM. Никто не требует же делать одну GOD-модель на все приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 15:08 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Eld Hasp, вчера, 23:51 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21887964][21887964] >...это не типичный для WPF подход… <Согласен, видимо действительно так. При моём подходе инфосистема реализуется множеством приложений. Каждое приложение есть <MainWindow, множество UserVontrol (рабочие панели), класс глобальные переменные>. Я хочу, чтобы пользователь имел на рабочем столе только тот инструмент, что необходим в данный момент по сути решаемой задачи..... Как Вы подходите к реализации я примерно понял. Для Вас основа приложения это интерфейс взаимодействия с пользователем. Так создавали приложения раньше - лет 30 назад. Я тогда работал и помню первые интерфейсы ещё когда даже Norton Commander не было. Помню как их программировали, как создавали интерфейсы для выносных дисплеев, работали в них с БД, Да, это всё было, но было это 30 лет назад! Тогда не было практически ни каких инструментов (ПО) для реализации всего этого и приходилось всё делать кастомно. Этот подход во многом сохранился сейчас и в сообществе WinForms программирования. В основном, потому что там очень большое количество "старых" программистов которые закостенели и не осваивают новые инструменты. А "молодёжь" смотрит на "стариков" и думает, что такое программирование и есть правильное. Это не так. WPF же ушёл уже намного дальше. Он создавался когда уже было множество различных других инструментов для создания пользовательских интерфейсов. И к тому времени уже были опробованы множество решений и паттернов облегчающих создание приложений. MicroSoft решила, что MVVM - это самый удобный из них для приложений в её ОС. И поэтому, именно с учётом реализации в этом паттерне, и разработала WPF. Но особенностью MVVM является создание приложения начиная с Модели, то есть части приложения отвечающего за обработку данных. Этот подход значительно противоречит знаниям "старых" программистов, поэтому редко кто из них научился полноценно использовать WPF. Даже те кто использую, то (за редким и исключением) используют полностью отбрасывая весь слой WPF созданный для взаимодействия с данными. То есть фактически превращая WPF в WinForms - только используя "модное" название. Ещё раз пишу. Такое программирование ОЧЕНЬ сильно затрудняет создание приложений. ОЧЕНЬ - это в десятки раз! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 15:12 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 15:18 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 15:47 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Eld HaspСкорее всего, это связанно, с отсутствием в WF привязок. И, соответственно, для реализации полноценного MVVM надо кастомно в View реализовывать прослушку всех свойств ViewModel. Это сложно для подавляющего большинства преподавателей. И, соответственно, они не учат этому студентов. Но в WF довольно просто использовать MVC паттерн. В нём уже функция обновления View возложена на контролер. Книге Брайана Нойеса "Привязка данных в Windows Forms", изданной на русском, уже 10 лет. Ничего сложного там нет и про MVP рассказано. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 16:02 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Дмитрий МухEld HaspСкорее всего, это связанно, с отсутствием в WF привязок. И, соответственно, для реализации полноценного MVVM надо кастомно в View реализовывать прослушку всех свойств ViewModel. Это сложно для подавляющего большинства преподавателей. И, соответственно, они не учат этому студентов. Но в WF довольно просто использовать MVC паттерн. В нём уже функция обновления View возложена на контролер. Книге Брайана Нойеса "Привязка данных в Windows Forms", изданной на русском, уже 10 лет. Ничего сложного там нет и про MVP рассказано.Сложного нет! Согласен! Но костность "стариков" не позволяет это освоить. Если же сравнивать с WPF, то в WinForms сделать правильно всё же намного сложнее. Но лучше и проще чем делать неправильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 16:11 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Eld HaspДмитрий Мухпропущено... Книге Брайана Нойеса "Привязка данных в Windows Forms", изданной на русском, уже 10 лет. Ничего сложного там нет и про MVP рассказано.Сложного нет! Согласен! Но костность "стариков" не позволяет это освоить. Если же сравнивать с WPF, то в WinForms сделать правильно всё же намного сложнее. Но лучше и проще чем делать неправильно. Старики старикам - рознь :) MVC, MVP, MVVM ведь "старики" и придумали. The MVC pattern was originally conceived in 1978-79 by Trygve Reenskaug and had the primary goal of providing an interface for users to manipulate multiple views of data as if working with real world entities. Взято отсюда: Interactive Application Architecture Patterns . Просто многим банально лень изучать что-либо. Хотя в институте вроде объясняли, что лучшие практики, подходы и технологии всегда на чём-то основаны :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 16:26 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Eld HaspЕсли же сравнивать с WPF, то в WinForms сделать правильно всё же намного сложнее. Так ведь интереснее пробовать приложить различные архитектурные подходы там, где за тебя это не сделали. Писать свои компоненты, а не использовать сторонние. И вот одни "старики" в своё время это сделали. И теперь результатами их труда пользуется множество разработчиков. А другие "старики" как говнокодили, так и продолжают. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 16:40 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, сегодня, 15:12 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21888203][21888203] >...то есть части приложения отвечающего за обработку данных… <Что Вы понимаете под обработкой данных? У меня сущности хранятся либо в списках, либо ObservableCollection. Что нужно с ними делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 16:46 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Дмитрий МухСтарики старикам - рознь :) Просто многим банально лень изучать что-либо. Хотя в институте вроде объясняли, что лучшие практики, подходы и технологии всегда на чём-то основаны :) Так и есть. Я писал о подавляющем большинстве. Сам я тоже "старик" - если 30 лет назад уже работал программистом... Дмитрий МухEld HaspЕсли же сравнивать с WPF, то в WinForms сделать правильно всё же намного сложнее. Так ведь интереснее пробовать приложить различные архитектурные подходы там, где за тебя это не сделали. Писать свои компоненты, а не использовать сторонние. И вот одни "старики" в своё время это сделали. И теперь результатами их труда пользуется множество разработчиков. А другие "старики" как говнокодили, так и продолжают.Осознанно пробовать и придумывать новое - это одно. А "тормозить" из-за костности на старом - это другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 16:56 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Eld HaspДмитрий Мухпропущено... Так ведь интереснее пробовать приложить различные архитектурные подходы там, где за тебя это не сделали. Писать свои компоненты, а не использовать сторонние. И вот одни "старики" в своё время это сделали. И теперь результатами их труда пользуется множество разработчиков. А другие "старики" как говнокодили, так и продолжают.Осознанно пробовать и придумывать новое - это одно. А "тормозить" из-за костности на старом - это другое. Первое - это любознательность. Второе - это лень, прокрастинация, невежество. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 17:00 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Eld Hasp, сегодня, 15:12 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21888203][21888203] >...то есть части приложения отвечающего за обработку данных… <Что Вы понимаете под обработкой данных? У меня сущности хранятся либо в списках, либо ObservableCollection. Что нужно с ними делать?Я не знаю, что, конкретно, с ними можно сейчас сделать. Для этого надо знать целиком Ваше приложение, так как оно, очень вероятно, изначально спроектировано неверно. А ошибки проектирования косметическими мерами не исправишь. Если есть желание научиться правильному созданию WPF приложения и есть время на это, то можно учиться на Вашем. Но его, скорее всего, придётся переделывать полностью. И начинать надо будет с этапа проектирования. Будет желание - пишите. Чем смогу помогу. В данном же случае, надо хотя бы целиком знать Вашу View. Чтобы понимать где что с чем стыкуется, где какие данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 17:04 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Eld HaspВ данном же случае, надо хотя бы целиком знать Вашу View. Чтобы понимать где что с чем стыкуется, где какие данные.Oh no! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 17:14 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, сегодня, 17:04 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21888262][21888262] >Я не знаю, что, конкретно, с ними можно сейчас сделать. <Я не точно сформулировал мысль - что делать с моими данными я знаю, но что Вы подразумеваете под обработкой ваших данных. И потом, ObservableCollection показываю в гриде так: Код: c# 1. 2. 3. 4. 5.
если это Вам что-то говорит, а то расчирикались насчет привязок. И так использую: Код: c# 1. 2. 3. 4. 5. 6.
и сущности во всех панелях имеют одинаковые имена, и списки тоже. Хотя Вам об этом рановато. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2019, 18:25 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Дмитрий Мух MVC, MVP, MVVM ведь "старики" и придумали. Из всех аббревиатур можно смело выкинуть первую букву, она там для красоты ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 00:26 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, 17 май 19, 19:55 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21887597][21887597] >1) Вы используете для вывода простого текста Label. <Последовал Вашему совету - заменил на пробу в одной панели Label на TextBlock. Подскажите как в TextBlock размещать текстовый контент по вертикали и горизонтали, а то бирки как-то не очень хорошо рисуются ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 12:19 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, Ты не стесняйся. Не бери его только label. Время есть, весь его пример изучи. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 12:49 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев<Последовал Вашему совету - заменил на пробу в одной панели Label на TextBlock. Подскажите как в TextBlock размещать текстовый контент по вертикали и горизонтали, а то бирки как-то не очень хорошо рисуются Честно говоря как-то надобности не былою На вскидку, в голову приходит два варианта Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: xml 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 13:39 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, сегодня, 13:39 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21890701][21890701] >...На вскидку, в голову приходит два варианта ... <Спасибо. Но остаюсь при своем: label.VerticaContentAlignment = VerticaAlignment.Center; ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 13:50 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Вот ещё пример - поворот до размещения Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 13:50 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Eld Hasp, сегодня, 13:39 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21890701][21890701] >...На вскидку, в голову приходит два варианта ... <Спасибо. Но остаюсь при своем: label.VerticaContentAlignment = VerticaAlignment.Center; Так я не понял Вам повёрнутый текст нужен или его центрирование по вертикали и горизонтали в контейнере? Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 13:55 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, сегодня, 13:55 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21890735][21890735] >Так я не понял Вам повёрнутый текст нужен или его центрирование по вертикали и горизонтали в контейнере? <Я использую выравнивание контента так: 1.label.VerticalContentAlignment = {VerticaContentAlignment.Center;VerticalContentAlignment.Тор;...} или или VerticalContentAlignment={"Center","Top",...} 2.label.HorizontalContenAlignment = {HorizontalContentAlignment.Center;HorizontalContentAlignment.Тор;...} или HorizontalAlignment={"Center","Top",...} повернутый текст пока не применял ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 14:25 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Eld Hasp, сегодня, 13:55 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21890735][21890735] >Так я не понял Вам повёрнутый текст нужен или его центрирование по вертикали и горизонтали в контейнере? <Я использую выравнивание контента так: 1.label.VerticalContentAlignment = {VerticaContentAlignment.Center;VerticalContentAlignment.Тор;...} или или VerticalContentAlignment={"Center","Top",...} 2.label.HorizontalContenAlignment = {HorizontalContentAlignment.Center;HorizontalContentAlignment.Тор;...} или HorizontalAlignment={"Center","Top",...} повернутый текст пока не применял Я в начале подумал, что вам текст надо выводить, то по горизонтали, то по вертикали. А обычное выравнивание я показа в предыдущем посте. Если в CB то так Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 14:34 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, сегодня, 14:34 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21890801][21890801] >...Если в CB то так... < Повторяю, контент выравниваю так: label.VerticalContentAlignment = VerticalContentAlignment.Center; а так сделать нельзя: textBlock.VerticalContentAlignment = VerticalContentAlignment.Center; или textBlock.HorizontalContentAlignment = HorizontalContentAlignment.Left; ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 14:53 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеева так сделать нельзя: textBlock.VerticalContentAlignment = VerticalContentAlignment.Center; или textBlock.HorizontalContentAlignment = HorizontalContentAlignment.Left; Нет. Это свойства класса Control. Его наследник ContentControl? а от него Label, ButtonBase и др. А TextBlock ycktletn напрямую от FrameworkElement. Мне трудно, Вам конкретно подсказать, не зная Вашей цели. Кроме того, я UI элементы? вообще, в принципе не создаю в коде - только в XAML. Возможно некоторые вещи к коде проще сделать по другому. В XAML - 90% делается автоматически дизайнером-конструктором, сразу видны результаты работы, легко корректировать, исправлять. В коде, в принципе, знаю как всё это повторить, но это муторно. На одну строчку XAML? которая создаётся в два-три клика и десяток введённых символов, в C# требуется пол листа вслепую написать. Что касается данного случая. То, по моим догадкам, Вам нужен элемент для вывода текста. С центральным выравниванием по вертикали и левым по горизонтали во включающем контейнере. Если фон элемента не нужен, то так будет выводить TextBlock с такими свойствами Код: c# 1.
По умолчанию горизонтальное выравнивание в TextBox для элемента для HorizontalAlignment = Stretch и для TextAlignment = Left. Поэтому их задавать не надо. Если же нужен фон в размер контейнера и вертикальное центрирование на этом фоне, то фон надо устанавливать у контейнера, а не TextBlock ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 16:59 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Для вывода не форматированного текста можно использовать TextBox в режиме только для чтения. Он тоже наследник Control->TextBoxBase->TextBox. И у него есть свойств для выравнивания содержимого. Так как Вы использовали Label? то вряд ли Вы выводили форматированный текст, так что TextBox должен Вам подойти. Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 17:09 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
TextBlock это по сути примитив, хоть он и является элементом управления и сам состоит из других элементов. Его обычно использую в шаблонах элементов управления (ControlTemplate, DataTemplate), как примитивный элемент отображения. А в макетировании\верстке элементов управления (Window, UserControl, DataTemplate) Label вполне уместен и предоставляет возможности переключения фокуса на связанный элемент управления с помощью горячих клавиш. Так как шаблоном по умолчанию для ContentPresenter'ов это TextBlock, содержимое будет всё равно в TextBlock'е. в Label можно будет добавить картинку или другие "фишички". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 17:11 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, сегодня, 17:09 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891024][21891024] >...Так как Вы использовали Label?... <Так: <Label Grid.Column="1" Grid.Row="0" x:Name="lbl_Заголовок" HorizontalAlignment="Center" VerticalAlignment="Center" Height="26" Width="117" Background="Yellow" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Visibility="Visible" Content="Сотрудники" /> ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 19:52 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Eld Hasp, сегодня, 17:09 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891024][21891024] >...Так как Вы использовали Label?... <Так: <Label Grid.Column="1" Grid.Row="0" x:Name="lbl_Заголовок" HorizontalAlignment="Center" VerticalAlignment="Center" Height="26" Width="117" Background="Yellow" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Visibility="Visible" Content="Сотрудники" />Из этого определения, на мой взгляд, избыточно Grid.Row="0" и Visibility="Visible" это и так значения по умолчанию. Зачем их явно прописывать. И имя элемента. Я имена использую только если они нужны для привязок внутри XAML. И то, чаще всего, дефолтное название создаваемое дизайнер-конструктором XAML. Все эти центрирования и явное задание размеров можно заменить на Padding Посмотрите такое определение. По-моему, визуально тоже самое, но короче Код: xml 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 22:46 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, сегодня, 22:46 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891331][21891331] >...Посмотрите такое определение. По-моему, визуально тоже самое, но короче... <Сделал так: Код: xml 1.
имею: ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 23:33 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Eld Hasp, сегодня, 22:46 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891331][21891331] >...Посмотрите такое определение. По-моему, визуально тоже самое, но короче... <Сделал так: Код: xml 1.
имею: Width="188" забыли убрать. И, по-моему, можно убрать VerticalAlignment="Center" , но это зависит от установки строки Grid. Если там Auto, то можно убирать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2019, 23:45 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, вчера, 23:45 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891365][21891365] >Width="188" забыли убрать. <Да нет, я изменяю размер желтого поля, а текст должен находится там, где мне надо (к примеру, по центру желтого поля или слева) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 00:59 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Eld Hasp, вчера, 23:45 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891365][21891365] >Width="188" забыли убрать. <Да нет, я изменяю размер желтого поля, а текст должен находится там, где мне надо (к примеру, по центру желтого поля или слева)Позвольте задать вопрос, а для чего Вы изменяете (при чём явно) размер этого поля? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 10:30 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, сегодня, 10:30 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891582][21891582] >Позвольте задать вопрос… <Я рассматриваю желтое поле и текст как шильдик, наклеенный на прибор. UserControl не совсем окно, как то надо показать что оно есть. Не знаю, как ещё объяснить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 14:10 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, По дизайну это Г. Хош верь, хош не верь. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 15:04 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 15:04 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21892095][21892095] >По дизайну это Г. … <На вкус на цвет. Но и шедевром своё творение не считаю. Дизайн не мой конёк. Функционально этот инструмент делает то что надо. По сути дизайна - на правой панели нет шильдика и (для меня) как то не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 16:40 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, Ну а зачем тут на форуме учить людей плохому дизайну? Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 16:44 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Eld Hasp, сегодня, 10:30 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21891582][21891582] >Позвольте задать вопрос… <Я рассматриваю желтое поле и текст как шильдик, наклеенный на прибор. UserControl не совсем окно, как то надо показать что оно есть. Не знаю, как ещё объяснить.Я не за это. Пусть шильдик. Дело Ваше. Но зачем явно задавать размер? Уберите Width="188" и посмотрите результат. Вообще, в WPF явное задание размеров используется очень редко. И VerticalAlignment="Center" тоже уберите - он, в данном случае, тоже не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 17:04 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Eld Hasp, +1 это как верстка html. Кругом наследование стилей и очень очень редкое перекрытие или абсолютные значения. Максимум параметров по умолчанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 17:30 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
Petro123Eld Hasp, +1 это как верстка html. Кругом наследование стилей и очень очень редкое перекрытие или абсолютные значения. Максимум параметров по умолчанию.Ну, как я понял, WPF и создавался с учётом опыта работы с HTML. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 18:01 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
По дизайну я как в 90е вернулся =))) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 19:57 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, сегодня, 17:04 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21892308][21892308] >Но зачем явно задавать размер? Уберите Width="188" и посмотрите результат. Вообще, в WPF явное задание размеров используется очень редко. <Убрал. Мне хотелось бы иметь более или менее одинаковый размер шильдика. Вы же предлагаете заменить Width на Padding, т.е. явное заменяете на неявное + нудная подгонка размера поля под контент. Тем не менее Вашим советом воспользуюсь. Спасибо. Код: xml 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 20:55 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеевМне хотелось бы иметь более или менее одинаковый размер шильдика. Вы же предлагаете заменить Width на Padding, т.е. явное заменяете на неявное + нудная подгонка размера поля под контент. Тем не менее Вашим советом воспользуюсь. Спасибо. Поймите, если делать, то делать. А вот это фраза "хотелось бы иметь более или менее одинаковый размер" звучит, ну, как-то очень не по программистски. Если Вам нужно сделать одинаков, и, именно, так Вам нужно по дизайну, то и делайте одинаково. Объявите в VM или в View ресурсах, соответствующую, переменную и стиль и привяжите все шильдики (по инглиш Label, наверное?) к этой переменной и стилю. Тогда всё будет комильфо. В этом стиле и Label ляжет красиво. Вот пример. Объявляете обычно в словаре и потом подключаете к ресурсом на уровне выше всех ваших окон где это используется Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
А по месту в окне просто прописываете Код: xml 1.
Тогда все "шильдики" будут одинаковые по оформлению, в том числе по ширине (если текст помещается). И оформление их всех будет в одном месте. А не раскидано по всем окнам. И если у Вас в целом дизайн окна однотипный, то не только "шильдики" надо поместить в стиль, а весь дизайн целиком. Ну, представьте себе, что это подпрограмма. Вызываете подпрограмму (стиль) и она создаёт Вам общий дизайн. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 21:31 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Eld Hasp, сегодня, 21:31 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21892513][21892513] >...И если у Вас в целом дизайн окна однотипный, … <Есть стремление к этому - дизайн панелей в принципе однотипный. Пока сделал "болванку". Копируешь и переименовываешь 2 файла и далее правишь нужное ручками. На сегодня имею 2 типа панелей - панели с дата гридом для отображения выборки и панели с Label, TextBox, DatePicker для отображения уточняющих параметров сущности. За интересную подсказку спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2019, 22:17 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев>Eld Hasp, сегодня, 21:31 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21892513][21892513] >...И если у Вас в целом дизайн окна однотипный, … <Есть стремление к этому - дизайн панелей в принципе однотипный. Пока сделал "болванку". Копируешь и переименовываешь 2 файла и далее правишь нужное ручками. На сегодня имею 2 типа панелей - панели с дата гридом для отображения выборки и панели с Label, TextBox, DatePicker для отображения уточняющих параметров сущности. За интересную подсказку спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 23:38 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ViPRos, Разбираем дизайн а-ля 90ые. "Панели" это у тебя аналог форм или окон винды? Тогда как премещать, закрывать, сворачивать, обзывать, распахивать, мигать, выравнивать и прогрессбарить в панели задач? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 10:18 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ViPRos, упс... Вопрос автору) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 10:18 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 10:18 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893656][21893656] >"Панели" это у тебя аналог форм или окон винды? <"Панель" есть UserControl WPF. Точка. Содержит "внутри себя" данные, команды и способ отображения. Располагаются на MainWindow. Некий аналог SPA (одностраничное приложение). Работу в рамках а-ля SPA сложно описать на пальцах. Легче привести код. Используется следующий интерфейс: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
к примеру, новая панель добавляется так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
удаляется так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Как будет раскрашена панель - дело дизайнера. Меня интересовал способ обмена данными между панелями. Не помню, кто ещё делал подобный интерфейс в 90-е. Для WinForm несколько большая возня с панелями при загрузке и удалении. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 12:17 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, Вроде простой вопрос от не программиста задал. Вверху на скрине Панель имени ВМоисеева (так буду называть) это для НЕ ПРОГРАММИСТА окно винды? .. Если не понял, то потом возьму скрин и обведу красным. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 13:51 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеевНекий аналог SPAтсссс. В десктопе разделах такое не говори. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 13:59 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 13:51 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893768][21893768] >Если не понял, то потом возьму скрин и обведу красным. <Не понял и скрина нет. Это имел ввиду? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 15:25 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, Раньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 15:27 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Retro123, сегодня, 15:27 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893821][21893821] >Раньше. <В холодно-горячо решил поиграть? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 15:36 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, А как ты с пользователями разговариваешь? Они спросят - а вот это окошко (скрин) которое вы назвали панелью, как закрыть-свернуть? А ты ему что? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 15:44 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 15:44 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893837][21893837] >А ты ему что? >У активной панели (с какой работаешь в данный момент) есть две кнопки: выход и подстановка+выход. Обе удаляют панель и делают активной предыдущую. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 16:17 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, Он тебе скажет по телефону - не вижу кнопку!!! Пакажи на скрине. Я тоже не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 16:45 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 16:45 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893876][21893876] >...Пакажи на скрине. Я тоже не вижу… <См. например здесь , здесь и здесь ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 19:01 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, Красня стрелка? Ужассссссс. А крестик в левом верхнем углу не догадался? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 19:43 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 19:43 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893924][21893924] >...А крестик в левом верхнем углу не догадался? <Все функциональные кнопки собраны в одном столбце грида. Так удобнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 21:12 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев, Вот поэтому тебе сложно в дизайне. Ты просто не видишь очевидного. - я спросил, почему не в ВЕРХНЕМ ЛЕВОМ углу. - ты ответил что все собраны а одном столбце. Неужели ты не понял, что можно делать в одном столбце, НО ВВЕРХУ? Удачи тебе) О дизайне бесполезно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 21:43 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 21:43 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893953][21893953] >...О дизайне бесполезно. <Видимо да, но обрати внимание на это . Да и крестик не отражает суть - стрелка есть переход к вызывающей панели ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 23:32 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеевстрелка есть переход к вызывающей панелиКруто)) А когда закрываем окно, то мы "закрываем" или "переходим к вызывающей")) LOL У тебя особый мир. Все закрывают, а у тебя - "переход". У тебя кнопки наверно тоже - вместо ОК\Cancel - Перейти\Остаться) ... Ладно, заканчиваем. Неинтересно. Делай свои "панели". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2019, 00:54 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
>Petro123, сегодня, 00:54 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1312511&msg=21893997][21893997] >...Ладно, заканчиваем. Неинтересно. Делай свои "панели"... <Да, с тобой надо заканчивать. Полезной информации от тебя ноль. Но на всякий случай, не для тебя, есть задача работы со списком Персоны (таблица Персоны). Из окна вызываем инструмент Персоны (UserControl uc_Персоны). Персонами могут быть пришлые или сотрудники. 1. Если пришлые, то общую информацию (для таблицы Персоны) задаем в строке грида, детальную (для таблицы ПерсоныД) в панели ПерсоныД (UserConrtol uc_ПерсоныД) 2. Если сотрудники, то вызываем панель ПерсоныД, клик на желтом Сотрудник для вызова панели Сотрудники. Сотрудник может иметься в таблице Сотрудники, а может и нет. Если позволяют права Пользователя, можно ввести нового сотрудника или посмотреть информацию о нем - общую в гриде, детальную в отдельной панели. После выбора сотрудника информация по сотруднику прописывается и панели ПерсоныД и в соответствующей строке грида панели Персоны. 3. Когда пользователь нажимает функциональную кнопку завершения работы с панелью, он не завершает работу в целом - текущая панель удаляется из зоны активности, её место занимает панель, что вызвала удаляемую. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2019, 11:01 |
|
Взаимодействие UserControl в рамках приложения
|
|||
---|---|---|---|
#18+
ВМоисеев<Да, с тобой надо заканчивать. Полезной информации от тебя ноль. Но на всякий случай,.... Но навсякий случай я за углом))) Так обычно говорят технари-кодеры которые никогда не вырастут)... до постановщиков задач. Будь справедливым, тебе же не только я про дизайн сказал). Постановка задачи - Г. и дизайн - Г. А исполнение задачи: Выкладывай дальше свой код и жди ответов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2019, 11:57 |
|
|
start [/forum/topic.php?all=1&fid=21&tid=1440327]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
99ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 193ms |
0 / 0 |