or
<HierarchicalDataTemplate x:Key="GroupListNestedContentTemplate"> |
<bui:UserControlForBottomClass/> |
</HierarchicalDataTemplate> |
<HierarchicalDataTemplate x:Key="GroupListNestedTemplate" ItemsSource="{Binding BottomClass}" ItemTemplate="{StaticResource GroupListNestedContentTemplate}"> |
<bui:UserControlForMiddleLevel /> |
</HierarchicalDataTemplate> |
<HierarchicalDataTemplate x:Key="GroupListTemplate" ItemsSource="{Binding MiddleList}" ItemTemplate="{StaticResource GroupListNestedTemplate}"> |
<bui:UserControlForTopLevel/> |
</HierarchicalDataTemplate> |
<Controls:RadTreeView x:Name="UiElement" DataContext="{Binding}" ItemsSource="{Binding}" ItemTemplate="{StaticResource GroupListTemplate}" IsDragDropEnabled="True" IsSingleExpandPath="True" IsExpandOnSingleClickEnabled="True" /> |
Hi
Is there property for the rows number (IsRowsNumbersEnable) or I need to build it myself like in the Sample?
Best regards
Ehud
<Window x:Class="HeirarchicalGridExample.MainWindow" |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
xmlns:telerikGrid="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView" |
xmlns:telerikData="clr-namespace:Telerik.Windows.Data;assembly=Telerik.Windows.Data" |
Title="MainWindow" Height="350" Width="525"> |
<Grid> |
<telerikGrid:RadGridView x:Name="RadGridView1" ItemsSource="{Binding}" DataLoading="RadGridView1_DataLoading" RowLoaded="RadGridView1_RowLoaded" /> |
</Grid> |
</Window> |
using System; |
using System.Collections.Generic; |
using System; |
using System.Collections.Generic; |
using System.Linq; |
using System.Windows; |
using System.Windows.Data; |
using Telerik.Windows.Controls.GridView; |
using Telerik.Windows.Controls; |
using Telerik.Windows.Data; |
namespace HeirarchicalGridExample |
{ |
/// <summary> |
/// Interaction logic for MainWindow.xaml |
/// </summary> |
public partial class MainWindow : Window |
{ |
public MainWindow() |
{ |
InitializeComponent(); |
DataContext = from i in Enumerable.Range(0, 5) |
select new MyObject() |
{ |
ID = i, |
Name = String.Format("Name{0}", i), |
Level = 1 |
}; |
} |
public class MyObject |
{ |
public int ID { get; set; } |
public string Name { get; set; } |
public int Level { get; set; } |
public IEnumerable<MyObject> Items |
{ |
get |
{ |
if (ID == 1 || ID == 3 || ID == 5 || ID == 7) |
{ |
return from i in Enumerable.Range(0, 10) |
select new MyObject() |
{ |
ID = i, |
Name = String.Format("{0}", Name + " - " + i.ToString()), |
Level = Level + 1 |
}; |
} |
else |
return Enumerable.Empty<MyObject>(); |
} |
} |
} |
private void RadGridView1_DataLoading(object sender, Telerik.Windows.Controls.GridView.GridViewDataLoadingEventArgs e) |
{ |
var grid = (GridViewDataControl)sender; |
var d = new GridViewTableDefinition(); |
d.Relation = new PropertyRelation("Items"); |
grid.TableDefinition.ChildTableDefinitions.Add(d); |
grid.AutoGenerateColumns = false; |
grid.Columns.Add(new GridViewDataColumn() { DataMemberBinding = new Binding("Level") }); |
grid.Columns.Add(new GridViewDataColumn() { DataMemberBinding = new Binding("ID") }); |
grid.Columns.Add(new GridViewDataColumn() { DataMemberBinding = new Binding("Name") }); |
} |
// this is only working for the top level of the grid |
private void RadGridView1_RowLoaded(object sender, RowLoadedEventArgs e) |
{ |
GridViewRow row = e.Row as GridViewRow; |
MyObject rowItem = e.DataElement as MyObject; |
if (row != null && rowItem != null) |
{ |
if (rowItem.Items.Count<MyObject>() > 0) |
row.IsExpandable = true; |
else |
row.IsExpandable = false; |
} |
} |
} |
} |