|
Событие из UserControl
|
|||
---|---|---|---|
#18+
Всем привет. Решил попробовать сделать свой UserControl в ListBox накидал пример. Подскажите как передать событие кнопки в MainWindow. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Модератор: Тема перенесена из форума "WinForms, .Net Framework". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 12:28 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
tatarnikov Подскажите как передать событие кнопки в MainWindow. Никак. Нужно использовать команды, и биндинг к командам вьюмодели. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 13:29 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
Сон Веры Павловны Никак Сон Веры Павловны Нужно использовать команды ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 13:49 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
как вариант: 1) зарегистрируйте своё маршрутизируемую команду или используйте существующую из класса ApplicationCommands (но своё всегда лучше) 2) добавьте в <Window.CommandBindings> параметры биндинга для этой команды и код обработчика событий (2 метода) в Code-Behind файле. пример делать лень, в гугле найдете все за 5 минут данный вариант не является "правильным решением", но как временное решение или решение на коленке имеет место быть. правильно делать так, как вам написали выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 13:50 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
>tatarnikov, сегодня, 12:28 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1327618&msg=22171622][22171622] >Подскажите как передать событие кнопки в MainWindow. < Вызвать соответствующий метод интерфейса, что реализован в MainWindow (понимаю, что для Вас это выглядит дико). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 14:14 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
ВМоисеев, его проблема в том, что кнопка в UserControl и обработчик события в CodeBehind файле контрола, а он хочет ловить событие в CodeBehind файле самого окна, делать обработчик события кнопки Public или Internal еще больший зашквар, за такое сразу на кол надо сажать ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 15:48 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
>Roman Mejtes, сегодня, 15:48 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1327618&msg=22171803][22171803] >его проблема в том, что кнопка в UserControl и обработчик события в CodeBehind файле контрола… < Я живу в несколько другом мире. Здесь кнопка находится в UserControl и здесь же находится и метод обработки события. Что конкретно делает метод обработки вопрос вторичный. В частности он может вызвать метод интерфейса в MainWindow для загрузки другого UserControl. Поэтому я не вставляю UserControl в поле списка. Здесь находится его имя. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 19:01 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
ВМоисеев, лично я UserControl'ом вообще не пользуюсь в 99.9% случаев ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 21:52 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
>Roman Mejtes, сегодня, 21:52 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1327618&msg=22171990][22171990] >лично я UserControl'ом вообще не пользуюсь в 99.9% случаев < С точностью до наоборот - весь интерфейс пользователя (а-ля SPA) попытался построить на базе UserControl-ов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 22:48 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
Roman Mejtes лично я UserControl'ом вообще не пользуюсь в 99.9% случаев Такая же фигня. И в 99,9% не использую EventHandler'ы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 03:02 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
>Сон Веры Павловны, сегодня, 03:02 [22172068] >Такая же фигня. И в 99,9% не использую EventHandler'ы. < Если возможно, приведите пример структуры приложения (решения) для работы с некоторым количеством сущностей, что хранятся в базе данных. Пример на слайде. uc… - userControl. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 10:23 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
ВМоисеев uc… - userControl И как же я его могу привести, если, как я выше писал, я не работаю с UserControl? Если же интересует, как я работаю с событиями - то см. выше, ICommand+биндинг к командам вьюмодели. На эту тему написаны тысячи всяческих гайдов, и это весьма тривиальная вещь, в этом нет ничего особенного. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 10:58 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
>Сон Веры Павловны, сегодня, 10:58 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1327618&msg=22172168][22172168] >И как же я его могу привести, если, как я выше писал, я не работаю с UserControl? < < UserControl - это мой вариант решения. < Как выглядит Ваш, без UC? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 11:43 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
tatarnikov , дополню ответ. UserControl используется (обычно) для задания Представлений насыщенных элементами и имеющими внутреннюю логику. Наиболее типичное использование - Представление ViewModel. В вашей же задаче вы его используете для представления элемента коллекции. Для этого случая гораздо лучше подходит шаблон данных для элемента ItemsControl (ListBox). Пример реализации. Вспомогательный тип для задания коллекции в XAML: Код: c# 1.
XAML Окна: Код: 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.
Code Behind Окна: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Если делать реализацию в MVVM (что ОЧЕНЬ желательно), то коллекцию элементов и команду надо Привязывать к свойствам ViewModel. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 11:46 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
ВМоисеев Как выглядит Ваш, без UC? Выглядит как прямое наследование от Control (либо нужного наследника Control - напр, ContentControl). Никакого code behind, класс отдельно, шаблон по умолчанию - отдельно, взаимодействие между составными частями - посредством template parts, определяемых в OnApplyTemplate. Eld Hasp UserControl используется (обычно) для задания Представлений насыщенных элементами и имеющими внутреннюю логику. Стандартный DataGrid (например) более чем насыщен элементами и внутренней логикой. Однако он не является UserControl. Более того, я вообще не припомню ни одного класса из стандартных сборок, которые были бы унаследованы от UserControl. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 12:00 |
|
Событие из UserControl
|
|||
---|---|---|---|
#18+
Сон Веры Павловны Eld Hasp UserControl используется (обычно) для задания Представлений насыщенных элементами и имеющими внутреннюю логику. Стандартный DataGrid (например) более чем насыщен элементами и внутренней логикой. Однако он не является UserControl. Более того, я вообще не припомню ни одного класса из стандартных сборок, которые были бы унаследованы от UserControl. Возможно я неверно выразился. Я воспринимаю (и использую) UserControl как аналог Page. Допустим, для создания однооконного приложения с навигацией. Или для Представления разных регионов в одном окне: для каждого региона свой тип с данными (вложенная или дочерняя VM) и для этого типа свой UserControl с нужным Представлением. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 12:07 |
|
|
start [/forum/topic.php?fid=21&fpage=2&tid=1440268]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 138ms |
0 / 0 |