我有一组对象,我们称之为People,每个对象由Name,ID和Time字符串组成。这些人必须显示在类似于固定行数和9列的网格上。我们的想法是人们在第1,2和3列中作为行添加到网格的左侧。一旦填充了最后一行,后续行将添加到列组4,5的“顶部”和6具有“包裹”效果。在分组填充之后,使用最后一组7,8和9。
我正在尝试决定是使用单个DataGrid来执行此操作,还是使用三个单独的DataGrid。数据将每隔几秒更新一次,因此性能受到关注。但是,我主要担心的是哪种方法更容易实施。是否有第三方网格控件具有这种“包装”功能?
这是一个使用WPF的C#应用程序。
谢谢。
答案 0 :(得分:1)
我根本不会使用任何类型的DataGrid,只是一个带有WrapPanel内容展示器和定义良好的ItemsTemplate的ListView。
这是一个让你入门的样本风格:
<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>