这是我想要做的。
动态类别:
数据行:
平台信息:
我有一些部分功能原型,但每个原型都有自己的主要问题。你能不能给我一些指导?
设想这款风格漂亮的款式。 :-)
--------------------------------------------------------------------------
|[ Common Category ]|[ Dynamic Category 0 ]|[ Dynamic Category N ]|
--------------------------------------------------------------------------
|[Header 1]|[Header 2]|[ Type 0 ]|[ Type N ]|[ Type 0 ]|[ Type N ]|
--------------------------------------------------------------------------
|[Data 2 Group] |
--------------------------------------------------------------------------
| Data A | Data 2 || Null | Data 1 || Data 0 | Data 1 ||
| Data B | Data 2 || Data 0 | Null || Data 0 | Data 1 ||
--------------------------------------------------------------------------
|[Data 1 Group] |
--------------------------------------------------------------------------
| Data C | Data 1 || Null | Data 1 || Data 0 | Data 1 ||
| Data D | Data 1 || Null | Null || Data 0 | Null ||
--------------------------------------------------------------------------
编辑:不需要排序和分页。
我查看了嵌套的 ListViews 和 DataGrids ,动态构建了一个Grid。动态构建网格并利用 SharedSizeGroup 属性似乎是最有前途的策略,但我对性能感到担忧。
更好的方法是将此视为动态报告吗?如果是这样,我应该看什么?
感谢您的帮助。
答案 0 :(得分:1)
在我看来,你需要一个透视网格控件。
有好消息编辑,但是,如果你手动完成,我会有这样的事情(从头到尾)
Class Data
Public Categories() as List
Public Types() as List
Public table as list( of row )
End Class
Class Row
Public Category as string
Public Type as string
Public Group as string
Public Header1 as string
Public Header2 as string
Public cell as string
End Class
然后我会编写一个函数,如:(伪代码)
function AddData( Category, Type, Group, theData )
1. Search if the Category exist in array of categories, else add it
2. Search if the Type exist in array of Types, else add it
3. add the rec
end function
function DisplayData( )
//show headers
For each category in data.categories
For each Type in data.categories
AddColumn( Category, Type )
next
next
//get the groups
for each group in (from g in data.table select g.group).distinct
for each category in data.categories
for each type in data.types
cell = (from r in data.table where r.category = category and r.type = type and r.group = group)
if cell is nothing then
addcell("null")
else
addcell(cell)
end if
next
next
next
我认为我留下了可能具有共同类别的几行,但你会得到这个想法 它不是性能最好的,但很容易理解。