Is it Possible to Nest Collections within Collections using Wpf DataGrid? -
i want simple sample program nests collections within collections using wpf datagrid.
here's implementation using vb.net codebehind. code needed create test data.
class mainwindow public property cs new list(of c1) sub new() ' call required designer. initializecomponent() i1 = 1 3 dim c1 = new c1 cs.add(c1) c1.c1text = i1 i2 = 1 3 dim c2 = new c2 c1.c1col.add(c2) c2.c2text = i1 & i2 i3 = 1 3 dim c3 = new c3 c2.c2col.add(c3) c3.c3text = i1 & i2 & i3 i4 = 1 3 dim c4 = new c4 c3.c3col.add(c4) c4.c4text = i1 & i2 & i3 & i4 i5 = 1 3 c4.c4col.add(i1 & i2 & i3 & i4 & i5) next next next next next datagrid1.itemssource = cs end sub end class public class c1 public property c1text string public property c1col new list(of c2) end class public class c2 public property c2text string public property c2col new list(of c3) end class public class c3 public property c3text string public property c3col new list(of c4) end class public class c4 public property c4text string public property c4col new list(of string) end class
here's xaml:
<window x:class="mainwindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" title="mainwindow" height="350" width="525"> <grid> <datagrid name="datagrid1" isreadonly="true" autogeneratecolumns="false" > <datagrid.columns> <datagridtextcolumn binding="{binding c1text}" /> <datagridtemplatecolumn> <datagridtemplatecolumn.celltemplate> <datatemplate> <datagrid name="datagrid2" itemssource="{binding c1col}" isreadonly="true" autogeneratecolumns="false"> <datagrid.columns> <datagridtextcolumn binding="{binding c2text}" /> <datagridtemplatecolumn> <datagridtemplatecolumn.celltemplate> <datatemplate> <datagrid name="datagrid3" itemssource="{binding c2col}" isreadonly="true" autogeneratecolumns="false"> <datagrid.columns> <datagridtextcolumn binding="{binding c3text}" /> <datagridtemplatecolumn> <datagridtemplatecolumn.celltemplate> <datatemplate> <datagrid name="datagrid4" itemssource="{binding c3col}" isreadonly="true" autogeneratecolumns="false"> <datagrid.columns> <datagridtextcolumn binding="{binding c4text}" /> <datagridtemplatecolumn> <datagridtemplatecolumn.celltemplate> <datatemplate> <datagrid name="datagrid5" itemssource="{binding c4col}" isreadonly="true" autogeneratecolumns="false"> <datagrid.columns> <datagridtextcolumn binding="{binding}" /> </datagrid.columns> </datagrid> </datatemplate> </datagridtemplatecolumn.celltemplate> </datagridtemplatecolumn> </datagrid.columns> </datagrid> </datatemplate> </datagridtemplatecolumn.celltemplate> </datagridtemplatecolumn> </datagrid.columns> </datagrid> </datatemplate> </datagridtemplatecolumn.celltemplate> </datagridtemplatecolumn> </datagrid.columns> </datagrid> </datatemplate> </datagridtemplatecolumn.celltemplate> </datagridtemplatecolumn> </datagrid.columns> </datagrid> </grid>
Comments
Post a Comment