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