Hello
I want to have three levels of hierarchy
this is my xaml
and this is my code
My question is
what code do I have to add
in order to see the second child level
Thanks
I want to have three levels of hierarchy
this is my xaml
| <telerik:RadGridView Name="gvAccount" Width="auto" ColumnsWidthMode="Fill" |
| AutoGenerateColumns="False" FlowDirection="RightToLeft" ShowGroupPanel="False" IsFilteringAllowed="False" CanUserResizeColumns="False"> |
| <telerik:RadGridView.Columns> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetTypeName" Header="סוג תקציב" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Number" Header="מספר חשבון" Width="90" /> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Name" Header="שם חשבון" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="ActivityBudget" Header="הקצבה כוללת אש''ח" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="TotalBudget" Header="יתרה לתקצוב" Width="90" /> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="PlanBudget" Header="שריון לפעילות" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="SumActualBudget" Header="התחיבות לפעילות" Width="90" /> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="a" Header="שולם בפועל" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetAllocation" Header="יתרה לתשלום" Width="90"/> |
| <telerik:GridViewComboBoxColumn DataMemberBinding="{Binding Path=ActivityTypeName}" |
| DisplayMemberPath="Name" SelectedValueMemberPath="Name" Header="סוג פעילות" UniqueName="ActivityTypeName" Width="90*"/> |
| </telerik:RadGridView.Columns> |
| <telerik:RadGridView.HierarchyChildTemplate> |
| <DataTemplate> |
| <StackPanel DataContext="{x:Null}"> |
| <telerik:RadGridView CanUserReorderColumns="False" Name="gvBudget" ColumnsWidthMode="Fill" |
| CanUserFreezeColumns="False" ShowGroupPanel="False" AutoGenerateColumns="False" ItemsSource="{Binding}" |
| Loaded="OnChildGridLoaded" FlowDirection="RightToLeft" IsFilteringAllowed="False" ShowColumnHeaders="False" ColumnBackground="AliceBlue" HorizontalContentAlignment="Right" ClipToBounds="True"> |
| <telerik:RadGridView.Columns> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetTypeName" Header="סוג תקציב" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Number" Header="מספר חשבון" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Name" Header="שם חשבון" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="ActivityBudget" Header="הקצבה כוללת אש''ח" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="TotalBudget" Header="יתרה לתקצוב" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="PlanBudget" Header="שריון לפעילות" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="SumActualBudget" Header="התחיבות לפעילות" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="a" Header="שולם בפועל" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetAllocation" Header="יתרה לתשלום" Width="90"/> |
| <telerik:GridViewComboBoxColumn DataMemberBinding="{Binding Path=ActivityTypeName}" |
| DisplayMemberPath="Name" SelectedValueMemberPath="Name" Header="סוג פעילות" UniqueName="ActivityTypeName" Width="90*"/> |
| </telerik:RadGridView.Columns> |
| <telerik:RadGridView.HierarchyChildTemplate> |
| <DataTemplate> |
| <StackPanel DataContext="{x:Null}"> |
| <telerik:RadGridView CanUserReorderColumns="False" Name="gvSubBudget" ColumnsWidthMode="Fill" |
| CanUserFreezeColumns="False" ShowGroupPanel="False" AutoGenerateColumns="False" ItemsSource="{Binding}" |
| Loaded="OnSubChildGridLoaded" FlowDirection="RightToLeft" IsFilteringAllowed="False" ShowColumnHeaders="False" ColumnBackground="AliceBlue" HorizontalContentAlignment="Right" ClipToBounds="True"> |
| <telerik:RadGridView.Columns> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetTypeName" Header="סוג תקציב" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Number" Header="מספר חשבון" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Name" Header="שם חשבון" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="ActivityBudget" Header="הקצבה כוללת אש''ח" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="TotalBudget" Header="יתרה לתקצוב" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="PlanBudget" Header="שריון לפעילות" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="SumActualBudget" Header="התחיבות לפעילות" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="a" Header="שולם בפועל" Width="90"/> |
| <telerik:GridViewDataColumn IsReadOnly="True" UniqueName="BudgetAllocation" Header="יתרה לתשלום" Width="90"/> |
| <telerik:GridViewComboBoxColumn DataMemberBinding="{Binding Path=ActivityTypeName}" |
| DisplayMemberPath="Name" SelectedValueMemberPath="Name" Header="סוג פעילות" UniqueName="ActivityTypeName" Width="90*"/> |
| </telerik:RadGridView.Columns> |
| </telerik:RadGridView> |
| </StackPanel> |
| </DataTemplate> |
| </telerik:RadGridView.HierarchyChildTemplate> |
| </telerik:RadGridView> |
| </StackPanel> |
| </DataTemplate> |
| </telerik:RadGridView.HierarchyChildTemplate> |
| </telerik:RadGridView> |
and this is my code
| private void BindDataMainGrid() |
| { |
| try |
| { |
| ((GridViewComboBoxColumn)this.gvAccount.Columns["ActivityTypeName"]).ItemsSource = ComboBoxValues.GetComboValues(CommonValues.GetActivityType()); |
| DataSet dataSet = this.GetData(); |
| // This is needed to make the grid use the HierarchyChildTemplate |
| GridViewTableDefinition detailDefinition = new GridViewTableDefinition(); |
| // Tell the detailsDefinition to pull its data from the Details DataTable. |
| detailDefinition.DataSource = dataSet.Tables["Budget"].DefaultView; |
| // Specify the relation between the two tables, similar to what is done in the DataSet. |
| TableRelation tr = new TableRelation(); |
| tr.FieldNames.Add(new FieldDescriptorNamePair("ID", "ParentID")); |
| detailDefinition.Relation = tr; |
| // Add a GridViewTableDefinition to the grid to make it use the HierarchyChildTemplate |
| // defined in XAML. |
| if (this.gvAccount.TableDefinition.ChildTableDefinitions.Count < 1) |
| this.gvAccount.TableDefinition.ChildTableDefinitions.Add(detailDefinition); |
| // Bind the grid to the "master" table. |
| this.gvAccount.ItemsSource = dataSet.Tables["Account"].DefaultView; |
| } |
| private DataSet GetData() |
| { |
| try |
| { |
| dsBudget dsac = ServiceData.GetBudgetsByAccount(1); |
| if (dsac != null) |
| { |
| DataSet ds = new DataSet(); |
| //DataTable dt = dsac.Tables["Budget"]; |
| DataView dv = new DataView(dsac.Tables["Budget"], "Type=1", "", DataViewRowState.CurrentRows); |
| ds.Tables.Add((DataTable)dv.ToTable("Account")); |
| dv = new DataView(dsac.Tables["Budget"], "Type=2", "", DataViewRowState.CurrentRows); |
| ds.Tables.Add((DataTable)dv.ToTable("Budget")); |
| dv = new DataView(dsac.Tables["Budget"], "Type=3", "", DataViewRowState.CurrentRows); |
| ds.Tables.Add((DataTable)dv.ToTable("SubBudget")); |
| ds.Relations.Add("BudgetRelation", |
| ds.Tables["Account"].Columns["ID"], |
| ds.Tables["Budget"].Columns["ParentID"]); |
| ds.Relations.Add("SubBudgetRelation", |
| ds.Tables["Budget"].Columns["ID"], |
| ds.Tables["SubBudget"].Columns["ParentID"]); |
| return ds; |
| } |
| } |
| catch |
| { |
| } |
| return null; |
| } |
| } |
My question is
what code do I have to add
in order to see the second child level
Thanks