У меня есть концепция для системы управления, которую я хотел бы построить. Отличительной чертой этой идеи является то, что я не собираюсь использовать подход «один размер подходит всем» или «один элемент управления, чтобы управлять ими всеми».
Например, Telerik делает очень хороший элемент управления Grid, как и ComponentOne, Xceed и т. Д. Однако все они являются гигантскими элементами управления с сотнями или тысячами методов и свойств, комплексными объектными моделями и т. Д. ... Все слишком часто эти сетки слишком излишни для того, что вам нужно, но вам все равно придется взяться за сложнейшую задачу изучения всей сетки, чтобы сделать что-то простое.
Моя концепция - это скорее "смешанный" подход. Где вы создаете очень простой элемент управления, а затем создаете функции, которые вы можете «добавить» в элемент управления а-ля-карт. Например, у вас есть простая сетка, и вы хотите добавить «секции» сетки с верхними и нижними колонтитулами для каждого.
Хорошо, так в чем же проблема? Традиционный способ сделать что-то подобное это через множественное наследование, которое C # не поддерживает. Даже если он это поддержал, я все еще придерживаюсь мнения, что MI добавляет больше проблем, чем решает.
Итак, я собираюсь узнать мнение о том, как подойти к этой проблеме. Будет ли MEF потенциальным решением?
EDIT:
Что-то, что приходит мне в голову, заключается в том, что можно использовать деревья выражений для создания элемента управления из различных выражений. Мне нужно еще немного подумать, но это интересная концепция.
Другим возможным вариантом может быть «Генератор управления», который генерирует сборку на основе выбранных элементов. Это кажется более сложным, но с T4 может быть управляемым.