Форум программистов, компьютерный форум, киберфорум
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. Показов 3496. Ответов 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,770
Записей в блоге: 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,181
Записей в блоге: 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,181
Записей в блоге: 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,181
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru