silverlight数据网格中的层次结构数据

本文关键字:数据 层次结构 网格 数据网 silverlight | 更新日期: 2023-09-27 18:00:11

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

请建议我如何检查。

假设网格包含

  • 第1列第2列…第50列
  • 第1列第2列…第50列

当用户点击"+"号时。

它应该读取第1列、第2列、第3列、第4列

然后进行一个db调用,并根据上面的值获取数据。

得到的网格应该是

  • col1 col2…Col50NestedCol1 NestedCol 2…NestedColl20NestedCol1 NestedCol 2…NestedColl20。。。。
  • col1 col2…Col50

谢谢,Naveen

silverlight数据网格中的层次结构数据

看起来您必须在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设置为集合。