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> 

alt text


Comments

Popular posts from this blog

unicode - Are email addresses allowed to contain non-alphanumeric characters? -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

c++ - Convert big endian to little endian when reading from a binary file -