@73reg

Как правильно организовать логику в Windows Forms c#?

Имеется форма с кнопками. Функционал части кнопок зависит от того, была ли нажаты ранее другие кнопки. Например: 1) если нажали кнопку А и нажали кнопку Б, то кнопка В делает операцию 1; 2)если нажали кнопку А и нажали кнопку Б, то кнопка В делает операцию 2.

Какими средствами лучше реализовать данную схему с минимумом затрат на написания кода? Как бы реализовывали Вы?
P.S. Использование bool-переменных флагов заставляет создавать слишком много кода, за которым сложно уследить в данной форме
  • Вопрос задан
  • 464 просмотра
Пригласить эксперта
Ответы на вопрос 4
newross
@newross
Product owner
реализовать паттерн MVVM или MVP. Еще упростить задачу можно перейдя на WPF.
Ответ написан
@private_tm
JAVA dev
Ну как ты без bool-значений/битовой маски это сделаешь?Никак!

Ну есть вариант записывать в какое то свойство кнопки данные.
Ответ написан
Комментировать
Rou1997
@Rou1997
Бред, применение каких-то особых средств в этом случае только отнимет лишнее время, ну, может быть, я бы расширил Button, добавив свойство "WasClicked" и т.п., или написал плагин для IDE, который бы автоматически генерировал флаги по кнопкам, но в любом случае это экономия на спичках, что-то изобретать имеет смысл для действительно трудоемких, и частых задач.
Ответ написан
Комментировать
Neuroware
@Neuroware
Программист в свободное от работы время
Я бы расширил button атрибутом Кликнуто и создал пару функций И и ИЛИ которые в качестве параметров принимают объекты класса кнопка. Далее составил бы сценарии и парсер сценариев, который читает сценарий и проверяет истинность высказывания. Если выражение истинно выполняет функцию и сбрасывает флаг Кликнуто на всех кнопках, которые участвовали в выражении
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы