我正在用wpf,MVVM模式实现一个应用程序。 我想用对象实现listview。这些对象包含一个列表。默认情况下,此列表仅包含1个对象。但在listview中,我想展示某些对象。所以列表中对象的属性。这是我的第一个问题。 但我也必须能够在此列表中包含更多对象。我的第二个问题是我真的不知道如何实现这一点?而且我还必须在listview中显示这些对象的属性。 也许树视图?但我不明白我是怎么开始的......
有人有想法吗?
答案 0 :(得分:2)
您可以任意嵌套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>
这可以在对齐方面得到改善,例如您可以在DataTemplate中使用共享大小列设置Grid,以使所有列表具有相同的宽度(使内部列对齐可能有点困难)
此外,您可以定义一种样式来折叠空列表(否则会显示没有项目的标题)。