silverlight数据网格中的分层数据

时间:2011-06-24 15:05:34

标签: c# silverlight datagrid hierarchical-data webdatagrid

我正在尝试创建一个Datagrid,其中第一列包含“+”符号,下一列包含数据。当用户单击“+”符号时,数据将从当前行获取,而来自不同表的相应层次结构数据将显示在当前行正下方的新网格中。我尝试在网上搜索但找不到任何例子。

请建议我如何检查。

让我们说网格包含

  • col1 Col2 .... Col50
  • col1 Col2 .... Col50

当用户点击“+”符号时。

它应该读取col1,Col2,Col3,Col4

然后进行数据库调用并根据上述值获取数据。

生成的网格应为

  • col1 col2 .... Col50 NestedCol1 NestedCol2 ... NestedCol20 NestedCol1 NestedCol2 ... NestedCol20 。 。 。 。
  • col1 col2 ... Col50

谢谢,Naveen

1 个答案:

答案 0 :(得分:1)

看起来你必须在DataGrid中定义一个新的RowDetailsTemplate。在参考资料中定义一个新的DataTemplate,其中有一个网格,有两行:

  • 第一行是常规数据:col1,col2,...加上控制第二行的按钮('+'按钮)
  • 第二行将有一个最适合您需要的新控件(ItemsControl,ListBox,DataGrid,...)

“+”按钮将控制第二行的可见性以及相应行的数据加载。

我希望这会让你开始朝着正确的方向前进。

编辑:

通过放入某种类型的集合,分层数据必须是第一行数据的一部分。

public class Foo{
object Col1 {get;set;}
object Col2 {get;set;}

object Col50 {get;set;}
NestedFoo[] NestedData {get;set;}}

public class NestedFoo{
object NestedCol1 {get;set;}
object NestedCol2 {get;set;}

object NestedCol50 {get;set;}}

这样,您可以将第二行中控件的ItemsSource设置为集合。