好的,如果您不在乎使用 WinForms 还是 WPF,我建议您使用 WPF。
如果您想要类似的东西ListView
,请尝试使用DataGrid
. 您在这里需要的基本概念是DataTemplate
. 在 中DataTemplate
,您可以根据需要重新设置单元格内容的样式。
这是我从我的一些代码中提取的一个粗略示例,但我没有让它自己编译。它会给你一个良好的开端。
<DataGrid ItemsSource="{Binding MyGridData}" AutoGenerateColumns="False" Name="my_datagrid">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Column1">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source={Binding GridCellImage}" />
<TextBlock Text="{Binding GridCellText}" />
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
阅读数据绑定以了解MyGridData
. 它基本上将是一个代码隐藏集合,为您的网格提供信息。它可能类似于 aList<T>
或ObservableCollection<T>
。T 是一个具有两个称为GridCellImage
和的公共属性的类GridCellText
。WPF 使您可以轻松地在代码隐藏中创建数据,并且因为它是数据绑定的,所以您的 GUI 将自动更新(在ObservableCollection
. 设置GridCellImage
为您的图像路径和GridCellText
该单元格中所需的文本。 GridCellImage
需要更多指定才能使其真正起作用,但这个答案的重点是向您展示在 WPF 中重新模板化内容以使其几乎可以随心所欲地显示数据是多么容易。
希望这可以帮助!