Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Заблокирован

Передача пункта меню классу и Label

24.10.2013, 09:24. Показов 896. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Только что занялся WPF и есть несколько вопросов: есть меню, есть таблица. В зависимости от выбора пункта меню надо менять заголовок в Label и как-то передавать в класс логики, какой пункт выбран.
1. Где лучше хранить строки для Label? Не хардкорно же в код запихивать.
2. Как узнать, какой пункт выбран? Допустим, есть пункты "Перевод из двоичной в десятичную" и "Перевод из десятичной в двоичную" - и таких штук 15. Для каждого свой обработчик не нужен, надо просто менять какой-то флаг и скармливать его классу, ну и менять текст в Label. Но как?
Простите, может вопросы глупые, но за полчаса многое пока осталось непонятным.

Добавлено через 25 минут
И да, где можно почитать про WPF немного?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.10.2013, 09:24
Ответы с готовыми решениями:

Добавление пункта в системное контекстное меню
Проблема такая: при запуске приложения я хочу что б в меню (когда по папке или файлу щелкаешь правой кнопкой) добавлялся еще один пункт, по...

Нажатие пункта контекстного меню в WMP
Добрый день! Подскажите пожалуйста. Имеется Проигрыватель Windows media. В него добавлен плей лист. Как программно нажать на пункт...

Добавление пункта в контекстное меню файла
Как сделать так что бы при нажатии на файл правой клавишей в меню был пункт "Открыть с помощью MyProgram"?

5
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
24.10.2013, 11:09
Цитата Сообщение от HashCode Посмотреть сообщение
1. Где лучше хранить строки для Label? Не хардкорно же в код запихивать.
Возможно громадное множество вариантов. Например, файлы лежащие рядом, или ресурсы.

Цитата Сообщение от HashCode Посмотреть сообщение
Как узнать, какой пункт выбран? Допустим, есть пункты "Перевод из двоичной в десятичную" и "Перевод из десятичной в двоичную" - и таких штук 15. Для каждого свой обработчик не нужен, надо просто менять какой-то флаг и скармливать его классу,
Тоже возможны варианты. Но, учитывая, что у вас на каждый класс своя процедура - можно и на каждый пункт свой обработчик.
Вариант 2 - один обработчик на всех, и там смотреть sender.
Вариант 3 - вообще не писать код вручную, а генерить нужное в run-time его исходя из конфигурации. Я бы сделал так.
Имеется какая-то конфигурация:
Code
1
((2, 10), "Перевод 2-10"), ((10, 2), "Перевод 10-2")
Программа читает, создаёт пункты меню, к ним присобачивает обработчики (через делегаты и, возможно, замыкания).
1
Заблокирован
25.10.2013, 07:57  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Но, учитывая, что у вас на каждый класс своя процедура - можно и на каждый пункт свой обработчик.
Нет, класс у меня один. А пунктов меню несколько. Просто надо разные числа передавать в конструктор.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
25.10.2013, 08:27
Цитата Сообщение от dondublon Посмотреть сообщение
Но, учитывая, что у вас на каждый класс своя процедура
Заговорился. Имел в виду пункт меню.
1
Заблокирован
25.10.2013, 08:31  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Заговорился. Имел в виду пункт меню.
А нету здесь такой чепухи, как в Delphi? Eсть свойство Tag, которому можно присвоить всё, что угодно (мне нужно номера элементов массива). Назначить всем пунктам меню один обработчик, а при нажатии отслеживать этот Tag через case.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
25.10.2013, 08:42
Цитата Сообщение от HashCode Посмотреть сообщение
А нету здесь такой чепухи, как в Delphi? Eсть свойство Tag, которому можно присвоить всё, что угодно (мне нужно номера элементов массива). Назначить всем пунктам меню один обработчик, а при нажатии отслеживать этот Tag через case.
Есть. Только туда записывается object.
Можно и так. Но, думаю, это лучший выбор.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.10.2013, 08:42
Помогаю со студенческими работами здесь

Передача ID пункта меню на другую страницу методом Post или Get
Добрый день форумчане, помогите передать ID пункта меню на другую страницу, после нажатия, методом Post или Get. В пример показать код не...

Выделение пункта меню при наведении - только текст или весь блок пункта
Всем привет.Есть меню, при наведении появляется hover но он идет строго по тексту... Можно ли его увеличить?Если да то как? Всем...

Можно ли изменить ссылки по классу в меню (поменять домен в конкретном меню)?
Всем привет. Есть два меню на странице: <ul class="menu-head"> <li><a href="http://domain-1.ru/">Ссылка...

Запретить выбор пункта меню, если он уже выбран в другом меню
Доброго времени суток! Помогите пожалуйста с такой задачкой: На форме 4 TPanel, к ним прикручены Popup menu. В каждом меню по 9 позиций...

Установка галочки в пункте меню при выборе данного пункта меню
Есть меню,надо,чтобы при нажатии на пункт меню напротив этого пункта ставилась галочка. Знаю про функцию checkmenuitem,но она устанавливает...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru