创建动态网格控件

时间:2010-10-25 00:27:29

标签: c# wpf grid itemscontrol


在WPF工作时,我需要一个动态网格。我的意思是一个网格,只包含一种对象,有一个该对象的模板等。但不像类似于Listbox的ItemsControl,我希望网格被赋予最大列属性。这应该作为分隔符,然后根据网格中的对象数量计算所需的行数。为此,我想继承Grid以使用它的Row和Column属性,但我有一个问题......我不知道如何在从ItemsControl继承ItemsSource之外实现ItemsSource属性......

所以我的问题分为两部分......

  1. 我是以正确的方式追求这个吗?我应该继承ItemsControl并尝试重新实现网格行为
  2. 如果这是正确的方法,我如何使用相应的ItemTemplate实现ItemsSource属性

2 个答案:

答案 0 :(得分:3)

或许更好的方法是使用ListView?以下是如何实现3列输出的示例:http://kristofmattei.be/2010/03/16/multi-column-listview/

答案 1 :(得分:1)

你想要像UniformGrid这样的东西吗?如果设置Columns属性(并且不设置Rows属性),它将自动计算要创建的行数以保存其项目。