ListView / DataGrid在单元格中有多行

时间:2012-01-16 17:23:29

标签: wpf listview datagrid

我想像下面那样制作相同的ListView / DataGird:

enter image description here

首先:我不确定它是ListView还是DataGrid,我怎么知道?
第二:我怎么能这样做? (如您所见,第一个单元格中有Icon,第二个分为3行>设备名称,设备驱动程序和设备状态。第三个带有音量表的单元格没有完成)。

非常感谢!

2 个答案:

答案 0 :(得分:1)

您可以使用ListViewListBoxDataGrid执行此操作,因为ListBox可能不是最简单的标头。

只需使用Grid创建ItemTemplate,使用SharedSizeGroups使列大小相同,在第二列中添加另一个包含三行文字的网格。


ListViewGridView组合但是已经提供了列,因此您只需要在第二列中创建一个Grid,您可以设置要折叠的标题样式。

<ListView.Resources>
    <Style TargetType="{x:Type GridViewColumnHeader}">
        <Setter Property="Visibility" Value="Collapsed"/>
    </Style>
</ListView.Resources>

GridView示例(用作ListView.View):

<GridView>
    <GridViewColumn>
        <GridViewColumn.CellTemplate>
            <DataTemplate>
                <Image Width="64" Height="64" Source="{Binding Icon}" />
            </DataTemplate>
        </GridViewColumn.CellTemplate>
    </GridViewColumn>
    <GridViewColumn>
        <GridViewColumn.CellTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Row="0" Text="{Binding Name}" />
                    <TextBlock Grid.Row="1" Text="{Binding Manufacturer}" Foreground="Gray" />
                    <TextBlock Grid.Row="2" Text="{Binding Status}" Foreground="Gray" />
                </Grid>
            </DataTemplate>
        </GridViewColumn.CellTemplate>
    </GridViewColumn>
</GridView>

答案 1 :(得分:1)

感谢H.B.,如果您只想显示没有选择等,请使用ItemsControlItemsControl