WPF - Как лучше сделать следующий контрол?
Есть стеллажи с полками.
------
Стеллаж - контейнер, дин.массив, коллекция полок.
Есть критичность в последовательности доступа к полкам?
На стеллаже может быть от 4 до 30 полок.
-----
Ограничения на размер, встроенные, параметры конструктора, свойства.
На каждой полке может лежать одна и только одна книга,
дополнительно на полке может быть еще несколько табличек,
типа автор и год издания.
-----
ограничения - ноль или одна книга,
коллекция табличек, ноль и более элементов.
Думаю, что в большинстве случаев ты будешь манипулировать всей полкой.
полка может иметь различные состояния отображаемые различными цветами
(типа книгу разрешено выносить из библиотеки, книга в читальном зале и т.п.).
-----
Свойство "состояние полки", коллекция/словарь атрибутов/свойств?
При работе проги может быть от 1 до 10 различных комбинаций стеллажей.
-----
Коллекция стеллажей.
Снова спрошу - порядок доступа критичен?
Программа должна иметь редактор стеллажей.
Стеллажи нужно выбирать в редакторе, но не нужно при работе.
-----
Ну и какая проблема - грид с редактируемыми полями и сбросом результата в файл (хмл?).
Полки нужно выбирать при работе, но не нужно в редакторе.
Дополнительные данные при работе могут вводится вручную для каждой полки.
-----
Не ясно.
Ты говоришь, что у тебя есть редактор стеллажей - получается - конфигурацию, т.е. количество полок, ты определяешь ДО.
И тут же требуешь возможность редактировать после.
Данные - не проблема - добавь Табличке строковую проперть и научись ее заполнять из формы.
Форма для редактирования - удобней динамическая, строящаяся по коллекции Табличек.
Ну если совсем накручивать - форму органайзер со списком всех свободных Табличек и набивку конкретной полки с редактированием полей.
Очень хочется иметь раздельное описание конфигурации стеллажей и данных на полках, что в принципе отметает листбоксы и гриды.
------
Да никаких проблем - один охватывающий ХМЛ и две вложенных ентити - редактируй как тебе нравится.
Имплементация будет не намного дольше чем гриды с боксами...