Как показать свойства списка в списке в виде списка? - PullRequest
0 голосов
/ 19 апреля 2011

Я реализую приложение в формате wpf, MVVM. Я хочу реализовать просмотр списка с объектами. Эти объекты содержат список. По умолчанию этот список содержит только 1 объект. Но в списке я хочу показать этот определенный объект. Итак, свойства объекта в списке. Это моя первая проблема. Но я также должен иметь больше объектов в этом списке. Вторая проблема в том, что я не знаю, как это реализовать? И я также должен показать свойства этих объектов в виде списка. Может быть, дерево? но я не понимаю, как мне начать с этого ..

Кто-то с некоторыми идеями?

1 Ответ

2 голосов
/ 19 апреля 2011

Вы можете произвольно вкладывать DataTemplates, например,

<ListView ItemsSource="{Binding Data}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Name"        DisplayMemberBinding="{Binding Name}"/>
            <!-- Internal Manchines list gets its own ListView -->
            <GridViewColumn Header="Machines">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <ListView ItemsSource="{Binding Machines}">
                            <ListView.View>
                                <GridView>
                                    <GridViewColumn Header="Model" DisplayMemberBinding="{Binding Model}"/>
                                    <GridViewColumn Header="Manufacturer" DisplayMemberBinding="{Binding Manufacturer}"/>
                                </GridView>
                            </ListView.View>
                        </ListView>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Header="Occupation"  DisplayMemberBinding="{Binding Occupation}"/>
            <GridViewColumn Header="Status"      DisplayMemberBinding="{Binding Status}"/>
        </GridView>
    </ListView.View>
</ListView>

Это может быть улучшено с точки зрения выравнивания, например, вы можете настроить Grid в DataTemplate со столбцом общего размера, чтобы сделать все списки одинаковой ширины.(хотя выравнивание внутренних столбцов может быть немного сложным)

Кроме того, вы можете определить стиль для свертывания пустых списков (в противном случае заголовок будет отображаться без элементов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...