我有一个对象集合,我们称之为 People,每个对象都由名称、ID 和时间字符串组成。这些人物必须显示在类似于固定行数和 9 列的网格上。这个想法是将人员作为行添加到第 1、2 和 3 列中的网格左侧。填充最后一行后,后续行将添加到列组 4、5 和列组的“顶部” 6 具有“包裹”效果。在该分组填满后,使用最后一组 7、8 和 9。
我正在尝试决定是使用单个 DataGrid 来执行此操作,还是使用三个单独的 DataGrid。数据将每隔几秒更新一次,因此性能是一个问题。但是,我主要关心的是哪种方法实现起来更容易、更清洁。是否有具有这种“包装”功能的第三方网格控件?
这是一个使用 WPF 的 C# 应用程序。
谢谢。
最佳答案
我根本不会使用任何类型的 DataGrid,只使用带有 WrapPanel 的 ListView内容呈现器和定义良好的 ItemsTemplate。
这是一个让您入门的示例样式:
<Style TargetType="{x:Type ListView}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<ScrollViewer Margin="{TemplateBinding Padding}">
<WrapPanel ItemWidth="150" IsItemsHost="True" MinWidth="100"
Width="{Binding ActualWidth,RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}">
</WrapPanel>
</ScrollViewer>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
关于c# - 我应该使用单个 DataGrid、多个 DataGrid 还是完全不同的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390162/