Как смешать грид-столбцы и элементы ItemsControl? - PullRequest
0 голосов
/ 19 октября 2010

Я ищу легкий способ создать Listbox / ListView / ItemsControl, где каждый элемент будет строкой Grid.

У меня простая древовидная структура (глубина = 3)

Group
   -> Question1
       ->Answer11
       ->Answer12
   -> Question2
       ->Answer21
       ->Answer22
       ->Answer23

и я хотел бы представить его в виде таблицы.

QUestion1 | Answer11 | Answer12 | -
Question2 | Answer21 | Answer22 | Answer23

Как видите, количество столбцов известно во время выполнения. Какой самый простой способ сделать это? Я попытался смешать ListView и GridView, но у меня были некоторые проблемы с привязкой вложенной коллекции ответов к столбцам. Любой другой простой способ сделать это в XAML с MVVM?

1 Ответ

0 голосов
/ 19 октября 2010

Вы могли бы сделать что-то вроде этого.

<ListBox x:Name="listbox" ItemsSource="{Binding Questions}">
        <ListBox.ItemTemplate>
            <DataTemplate DataType="{x:Type local:Question}">
                <StackPanel Orientation="Horizontal">
                <TextBlock Width="100" Text="{Binding QuestionText}" />
                    <ItemsControl ItemsSource="{Binding Answers}">
                        <ItemsControl.ItemsPanel>
                            <ItemsPanelTemplate>
                                <StackPanel Orientation="Horizontal" />
                            </ItemsPanelTemplate>
                        </ItemsControl.ItemsPanel>
                        <ItemsControl.ItemTemplate>
                            <DataTemplate DataType="{x:Type local:Answer}">
                                <TextBlock Width="100" Text="{Binding Text}" />
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>
                    </ItemsControl>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

Это создает список вопросов (текст вопроса в первом столбце) и ответы на вопрос в виде горизонтального списка справа от текста вопроса.

Это предполагает, что ваши вопросы иответы являются обязательными свойствами.Это также не настоящая «Сетка», но если этого достаточно, чтобы выглядеть как таблица, это может сработать.

...