多级标题GridView WPF

我需要将listview视图设置为gridview,它具有像这样的复杂标题(基于我创建的3维对象列表):

| ---------- LEVEL 0 ------------ | | -- Level 1a -- | -- Level 1b -- | | Lvl A | Lvl B | Lvl A | Lvl B | 

编辑:这是我的对象模型更少

 public class Measures { public string Caption { get; set; } public List ThresholdList { get; set; } } public class Threshold { public string Caption { get; set; } public double Value1 { get; set; } public double Value2 { get; set; } public double Value3 { get; set; } public double Value4 { get; set; } } 

我要绑定一个动态的Measures列表(这是我的等级0),然后是一个动态的Threshold列表(等级1a …),如果它们是每个阈值显示值1到4!= 0

这样的事情怎么样:

                                       

您可能需要将Value1,Value2属性转换为集合,以便动态显示非零值并使用我用于显示阈值的相同ListBox / StackPanel方法。

这给出了输出:

截图

只是为了完成post,这里是我使用的代码:

 List measuresList = new List(); Measures measures = new Measures() { Caption = "LEVEL 0", ThresholdList = new List() }; measures.ThresholdList.Add(new Threshold() { Caption = "Level 1a", Value1 = 1, Value2 = 2, Value3 = 3, Value4 = 4 }); measures.ThresholdList.Add(new Threshold() { Caption = "Level 1b", Value1 = 5, Value2 = 6, Value3 = 7, Value4 = 8 }); measuresList.Add(measures); this.MainListBox.ItemsSource = measuresList; 

0级是ListView吗? 级别1A和级别1b是您想要在级别0列表视图内的两个不同模板化列中的网格视图吗? 那么A级和B级是在1a级和1b级中2个更模板化的列中的另外两个网格视图?

您可能能够将此嵌套GridView使用的相同概念转换为WPF

http://forums.asp.net/t/1071521.aspx

我没有在wpf中尝试过,但gridviews似乎是以类似的方式构建的。 只需使用面板代替Div,并且不必担心客户端/服务器端调用。

数据集也比列表更好用。

这里有一些关于我之前如何设置嵌套数据集的伪代码

 DataSet ds1 = new DataSet(); ds1.Tables.Add(m_DataLayer.GetRealA_Data(X, Y).Copy()); Returns Table ["A"] ds1.Tables.Add(m_DataLayer.GetB_Empty().Copy());// Returns Table ["B"] ds1.Tables.Add(m_DataLayer.GetC_Empty().Copy());// Returns Table ["C"] ds1.Tables.Add(m_DataLayer.GetD_Empty().Copy());// Returns Table ["D"] ds1.Relations.Add("b", ds1.Tables["A"].Columns["A_id"], ds1.Tables["B"].Columns["A_id"]); ds1.Relations.Add("c", ds1.Tables["B"].Columns["B_id"] , ds1.Tables["C"].Columns["B_id"]); ds1.Relations.Add("d", ds1.Tables["C"].Columns["C_id"] , ds1.Tables["D"].Columns["D_id"]); dt_TheGridViewDataSet = ds1; TheGridView.DataSource = ds1; 

你有没有想过它应该如何表现 – 你的标题是什么?

很容易制作一个看起来像你建议的标题 – 你可以用编程方式构建一些网格 – 但这只是标题。 您是否也可以像往常一样使用listview标题resize?

也许您正在寻找类似TreeListView的东西?

http://www.codeproject.com/KB/WPF/TreeListView.aspx

我认为这就是我要显示的多维数据 – 它易于理解和使用,其中自定义列表视图很难实现以表现正确。