Я ищу лучшие практики для реализации сложной логики пользовательского интерфейса. Я работаю над приложением Windows Forms, но считаю, что для решения этой проблемы на любой платформе должны быть общие шаблоны.
У меня есть несколько элементов управления в моей форме, есть списки, кнопки, таблицы и древовидная структура. Итак, идея заключается в том, что в зависимости от «контекста» некоторые элементы управления включаются, а другие отключаются. Некоторые из них могут предоставить некоторые функции на данный момент, а другие нет.
В настоящее время это реализовано "как есть". Я обрабатываю события, проверяю изменения (выбран новый узел дерева, выбрана пара узлов и т. Д.), А затем решаю, нужно ли отключить или включить некоторые элементы управления. Мне не очень нравится этот подход, потому что код формы выглядит сложным. И если мне нужно добавить больше логики, это становится еще сложнее. Я действительно обеспокоен, так как мы довольно проворны, и новые функции или множество изменений являются ежедневной нормой.
Я собираюсь разделить всю эту логику на части (Функции), где каждая функция - это объект, который знает, как проверить свое состояние, и в зависимости от этого состояния включить или отключить соответствующие элементы управления.
Не очень хочется изобретать что-то новое и пытаться найти какие-нибудь хорошие идеи, которые широко используются. Пожалуйста, не рекомендуйте подход с одним методом UpdateUI (), я думаю, что это ничего не изменит в долгосрочной перспективе.
Спасибо.