Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468

Приложение MVVM. Контекстное меню (удаление, редактирование) для элемента (Товара) в ListBox

05.03.2023, 22:14. Показов 3459. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В этой теме обсуждается только вопросы по реализации контекстного меню для элемента коллекции Товаров.
Основная тема: Приложение MVVM. VMs и навигация
Цитата Сообщение от Элд Хасп Посмотреть сообщение
В основное Окно нужно только добавить кликер или команду для вызова диалога редактирования.
Да, для добавления будет отдельная кнопка где-то сверху. А для редактирования давайте создадим контекстное меню для каждого элемента. Хотя тут могут возникнуть неудобства из-за того что оно не является частью визуального дерева...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2023, 22:14
Ответы с готовыми решениями:

Как создать контекстное меню для элемента управления ListBox?
Как сделать контекстное меню, которое вызывается при выборе определенного элемента list box.

Одно контекстное меню для двух listBox
Здравствуйте! Как можно использовать два пункта контекстного меню "Копировать" и "Очистить" для listBox1 и listBox2? ...

Ничего не понимаю в Class Modules. Сделал контекстное меню для Listbox
В UserForm находятся два Listbox, чтобы макрос работал пришлось сделать отдельные Class Modules для каждого Listbox Вопрос: можно ли всё...

47
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,763
Записей в блоге: 4
09.03.2023, 13:44
Студворк — интернет-сервис помощи студентам
Элд Хасп, Чёта мне кажется не стоит оно того
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
09.03.2023, 14:00  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вот о том как лучше реализовать эту передачу между разными визуальными деревьями, собственно, и идёт общение.
Я, кстати, догадался, что контекстное меню может получить доступ к основной VM через ресурсы. Так как у контекстного меню нет предка и в ресурсах приложения есть локатор, то оно сразу же там и ищет
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
09.03.2023, 14:33
Цитата Сообщение от INexteR Посмотреть сообщение
контекстное меню может получить доступ к основной VM через ресурсы.
Иерархия ресурсов для Контекстного Меню начинается с ресурсов PlacementTarget. Так же как DataContext оно получет от него.
Но DataContext это просто элемент (object). Поэтому "путешествовать" по иерархии Контекстов Данных не возможно.
А вот ресурсы автоматически обеспечивают возможность запроса сразу по всей иерархии.

Цитата Сообщение от Andrey-MSK Посмотреть сообщение
, Чёта мне кажется не стоит оно того
Ну, это второй вопрос.
Собственно ответ на него здесь:
Цитата Сообщение от INexteR Посмотреть сообщение
Давайте сделаем через контекстное меню, ну пожалуйста
Без этого и темы не было.
Я изначально предлагал другой вариант, гораздо проще реализуемый:
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Может просто добавить в строку ListBox пару кнопок "Удалить" и "Изменить"?
Добавлено через 2 минуты
INexteR, кстати есть ещё одна возможная реализация.
Можно у целевого объекта сделать Контекстом данных контейнер содержащий VM и сущность.
И Контекстное сразу "без фокусов" получит их в свой Контекст Данных.

Вечером покажу такую реализацию.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
09.03.2023, 14:42  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я изначально предлагал другой вариант, гораздо проще реализуемый:
Просто в одном варианте задания были требования по реализации редактирования с помощью контекстного меню. Вот поэтому я и заинтересовался. К тому же хотелось получить какой-то опыт работы с ним

Добавлено через 3 минуты
Меня интересует маппер. Он инициализирует свойства составного типа такие как Manufacturer?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
09.03.2023, 14:43
INexteR, хотя....
Для этого потребуется Freezable прокси. А вас они смущают.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
09.03.2023, 14:47  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А вас они смущают.
Да не то что бы, просто на их разбор нужно время. А я как-то пока в нем ограничен
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,176
Записей в блоге: 2
09.03.2023, 14:56
Добавлено через 5 минут
Цитата Сообщение от INexteR Посмотреть сообщение
А я как-то пока в нем ограничен
Тогда эту реализацию оставим пока.
По сути она будет очень похожа на DataContext="{Binding Products, Source={StaticResource locator}, Mode=OneTime}".
Можно записать в Tag PlacementTarget (Grid) ссылку на VM, а в контекстом меню извлекать её.
Что не стоит делать, так это менять Контекст Данных Контекстного Меню. Через него передаётся какой элемент собственно и нужно обрабатывать.

Добавлено через 59 секунд
Только ссылку на VM лучше получать не через локатор, а через Контекст Данных UserControl или (лучше) ListBox.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
09.03.2023, 15:18  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Что не стоит делать, так это менять Контекст Данных Контекстного Меню. Через него передаётся какой элемент собственно и нужно обрабатывать.
В последней фиксации я уже не менял контекста данных контекстного меню. Вместо этого я привязал его тэг.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.03.2023, 15:18

Удаление, редактирование и поиск элементов в массиве структур (консольное приложение с меню)
Всем привет! Задали работу по программированию, смоделировать работу склада по добавлению, удалению, изменению товаров (товар как массив...

Привязка команды для элемента контекстное меню TreeView
Имеется дерево. Как сделать разное контекстное меню для элемента разобрался. Команда тоже существует в LampViewModel(Lamps - список Lamp) с...

Как сделать контекстное меню для каждого элемента QListWidget
Не как не могу понять как сделать контекстное меню для каждого элемента QListWidget, помогите пожалуйста Qt начал изучать совсем недавно

Контекстное меню: Редактирование кнопок
Всем привет, появился такой вопрос, как мне в контекстном меню убрать кнопку обновить(рабочий стол) или изменить(txt файл), например хочу...

Контекстное меню в ListBox
Добрый времени суток. Имеется заполненный ListBox. Также есть ContextMenuStrip. Необходимо, чтобы ContextMenuStrip открывался, только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
48
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru