Продукт моей компании по своей сути является основой для разработки управляемых метаданными пользовательских интерфейсов. Я не знаю, как охарактеризовать его менее кратко, и надеюсь, что мне не понадобится для этого вопроса, но посмотрим.
Я пытался быстро освоить WPF и создавал прототипы пользовательского интерфейса здесь и там, и недавно я решил посмотреть, смогу ли я использовать Expression Blend, чтобы помочь с дизайном этих пользовательских интерфейсов. И в этот момент я очень озадачен.
Мне кажется, что Expresssion Blend разработан с расчетом на то, что вы уже знаете все объекты, которые будут присутствовать в пользовательском интерфейсе во время разработки. Но наша программа генерирует эти объекты динамически во время выполнения.
Например, строка данных может быть представлена в горизонтальной панели StackPanel, содержащей чередующиеся TextBlocks (для подписей) и TextBoxes (для полей данных). Количество этих объектов зависит от метаданных о количестве столбцов в строке данных. Я могу с готовностью написать код, который проходит через запись метаданных и динамически заполняет StackPanel, настраивая привязку всех элементов управления к свойствам данных или метаданных. (Ширина TextBox может быть связана с метаданными, а его текст связан с данными.)
Но я даже не могу понять, как сделать что-то подобное в Expression Blend. Я могу вручную создать все эти элементы управления, чтобы у меня был набор элементов управления, к которым я могу применять стили и разрабатывать визуальный дизайн приложения, но это действительно сложно.
Я могу написать код, который проходит через мою модель данных и испускает XAML для всех этих элементов управления, я полагаю, а затем копировать и вставлять его. Но я буду чувствовать себя по-настоящему глупо, если окажется, что в Expression Blend найдется способ сделать что-то подобное, и я отступил и наказал, потому что я слишком смелый, чтобы придумать правильный способ думать об этом.
Достаточно ли этой информации, чтобы кто-то попытался сформулировать ответ?