Каковы наилучшие способы управления кодом в приложении с одной формой, которое имеет много различных компонентов? например, подумайте о финансовом приложении, в котором есть средство выбора продуктов для просмотра / выбора продукта для просмотра; горстка тикеров в реальном времени для цен, процентных ставок или чего-либо еще; прокрутка новостей; различные графики; сетка, отображающая локально рассчитанные значения; и т.д.
Не могли бы вы создать собственный элемент управления для каждого отдельного компонента, даже если они не будут использоваться вне этого приложения? или вы могли бы сделать это с классами, которые реализуют логику для каждого компонента и каким-то образом обновить этот фактический элемент управления в графическом интерфейсе? двум компонентам может потребоваться взаимодействие друг с другом, например, Вы щелкаете ячейку в сетке, и она вызывает диаграмму (будет ли основная форма обрабатывать отправку сообщения?)
У меня есть привычка позволять кодам форм увеличиваться при добавлении функций, и я действительно хочу познакомиться с лучшим способом. Я работаю с c # (не использую WPF), но я предполагаю, что основные принципы проектирования не обязательно зависят от языка.