Сетка с контентом от Binding - PullRequest
1 голос
/ 30 июля 2011

У меня есть библиотека, которая генерирует сетку на основе входных параметров.Сетка может содержать различные элементы управления, основанные на вводе.Я хочу создать ListBox, где каждый элемент списка получит свою собственную сгенерированную сетку.Это выполнимо?Я не смог найти никаких производных от Panel (Gird, StackPanel и т. Д.), Которые бы выставляли свойство Content, например, Button.

Ответы [ 2 ]

0 голосов
/ 30 июля 2011

@ XAMeLi почти полностью оправдывает свой ответ - лучше бы было DataTemplateSelector , чтобы каждый элемент данных мог иметь свой шаблон (или сгенерированную сетку),В вашем классе, который расширяет DataTemplateSelector, вы можете легко сгенерировать или загрузить соответствующий макет сетки как отдельный элемент управления или как динамический шаблон данных.

Проверьте эту статью для хорошего примера: Учебник WPF - КакЧтобы использовать DataTemplateSelector

0 голосов
/ 30 июля 2011

Как вы передаете данные для построения Grid?

Я предполагаю, что у вас есть элемент управления, который получает данные через свойство зависимостей. То есть у вас есть что-то вроде свойства MyControl.MyData, где MyData является свойством зависимости. В этом случае попробуйте использовать DataTemplate.

Создайте коллекцию ObservableCollection, где каждый элемент - это данные, которые необходимо передать для построения сетки.

В экземпляре ListBox определите ItemTemplate, чтобы использовать DataTemplate, состоящий из вашего элемента управления.

<ListBox>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <myAssembly:MyControl MyData="{Binding }"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...