C#/ WPF:Toolkit DataGrid – 转置行和列

我有一个
List<DetailObject> someList;

看起来像这样:

public class DetailObject
    {
        public string Titel { get; set; }
        public int Value1 { get; set; }
        public int Value2 { get; set; }
        public int Value3 { get; set; }
    }

有谁知道我如何使用(使用DataGrid.AutoGenerateColumns =“True”)’string Titel’的值作为RowHeader和其他成员作为“行”内容?没有任何修改,它会向我显示“Titel”作为ColumnHeader并将Titel的值显示为row,dito for
“Value1”作为ColumnHeader,Value1的值作为行等.

谢谢你的帮助!

干杯

编辑:
为了更好地理解,这就是我所拥有的

[Titel]       [Value1]       [Value2]       [Value3]
[Item1.Titel] [Item1.Value1] [Item1.Value2] [Item1.Value3] 
[Item2.Titel] [Item2.Value1] [Item2.Value2] [Item2.Value3] 
[Item3.Titel] [Item3.Value1] [Item3.Value2] [Item3.Value3]

这就是我要找的东西:

[Item1.Titel]  [Item2.Titel]  [Item3.Titel] 
[Item1.Value1] [Item2.Value1] [Item3.Value1]
[Item1.Value2] [Item2.Value2] [Item3.Value2]
[Item1.Value3] [Item2.Value3] [Item3.Value3]

EDIT2:
在这里找到了一个不错的方法
http://codemaverick.blogspot.com/2008/02/transpose-datagrid-or-gridview-by.html

解决方法

您可以像这样使用RowHeaderTemplate:
<toolkit:DataGrid>
  <toolkit:DataGrid.RowHeaderTemplate>
    <DataTemplate>
      <TextBlock Text="{Binding Item.Titel,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type toolkit:DataGridRow}}}"/>
    </DataTemplate>
  </toolkit:DataGrid.RowHeaderTemplate>
</toolkit:DataGrid>

您还必须将AutoGenerateColumns设置为false并创建自己的列,以避免Titel属性显示为列.

编辑

我现在明白你想要转置DataGrid.我认为简单但有些“hacky”的解决方案是创建一个“转置”对象列表.要做到这一点,您必须事先知道原始列表中有多少个对象,然后创建一个具有与对象一样多的属性的新类.

class TransposedDetailObject {
  public String Column1 { get; set; }
  public String Column2 { get; set; }
  public String Column3 { get; set; }
}

var transposedList new List<TransposedDetailObject> {
  new TransposedDetailObject {
    Column1 = someList[0].Titel,Column2 = someList[2].Titel,Column3 = someList[3].Titel
  },new TransposedDetailObject {
    Column1 = someList[0].Value1,Column2 = someList[2].Value1,Column3 = someList[3].Value1
  },...
};

一个不太“hacky”的解决方案是修改DataGrid的控件模板以交换行和列.但是,DataGrid是一个复杂的控件,修改控件模板可能有点压倒性.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...