Hello,
Here is my gridview.
For the firs time it is child one and then it becomes self-hierarchical. Everything is OK, but in the real programm we use WCF service and MyObject and MyObject2 are DataContracts, and we need to call a WCF service in the get-methods of the Items property.
So, I ask you for help: How could I call the WFC method or maybe there is another way to make such hierarchy.
Here is my gridview.
<
UserControl
x:Class
=
"SilverlightApplication1.MainPage"
xmlns:d
=
"http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc
=
"http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable
=
"d"
d:DesignWidth
=
"640"
d:DesignHeight
=
"480"
xmlns:telerikGrid
=
"clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView"
>
<
Grid
x:Name
=
"LayoutRoot"
>
<
telerikGrid:RadGridView
x:Name
=
"RadGridView1"
ItemsSource
=
"{Binding}"
AutoGenerateColumns
=
"False"
>
<
telerikGrid:RadGridView.ChildTableDefinitions
>
<
telerikGrid:GridViewTableDefinition
/>
</
telerikGrid:RadGridView.ChildTableDefinitions
>
<
telerikGrid:RadGridView.Columns
>
<
telerikGrid:GridViewDataColumn
Header
=
"ID"
DataMemberBinding
=
"{Binding ID}"
/>
<
telerikGrid:GridViewDataColumn
Header
=
"Name"
DataMemberBinding
=
"{Binding Name}"
/>
</
telerikGrid:RadGridView.Columns
>
<
telerikGrid:RadGridView.HierarchyChildTemplate
>
<
DataTemplate
>
<
telerikGrid:RadGridView
x:Name
=
"SubGrid"
DataLoading
=
"SubGrid_DataLoading"
AutoGenerateColumns
=
"False"
ItemsSource
=
"{Binding Items}"
>
</
telerikGrid:RadGridView
>
</
DataTemplate
>
</
telerikGrid:RadGridView.HierarchyChildTemplate
>
</
telerikGrid:RadGridView
>
</
Grid
>
</
UserControl
>
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Net;
using
System.Windows;
using
System.Windows.Controls;
using
System.Windows.Documents;
using
System.Windows.Input;
using
System.Windows.Media;
using
System.Windows.Media.Animation;
using
System.Windows.Shapes;
using
System.Windows.Data;
using
Telerik.Windows.Controls;
using
System.Collections.ObjectModel;
using
Telerik.Windows.Data;
using
Telerik.Windows.Controls.GridView;
namespace
SilverlightApplication1
{
public
partial
class
MainPage : UserControl
{
public
MainPage()
{
InitializeComponent();
DataContext = from i
in
Enumerable.Range(0, 10)
select
new
MyObject()
{
ID = i,
Name = String.Format(
"Name{0}"
, i)
};
}
public
class
MyObject
{
public
int
ID {
get
;
set
; }
public
string
Name {
get
;
set
; }
public
IEnumerable<MyObject2> Items
{
get
{
return
from i
in
Enumerable.Range(0, 10)
select
new
MyObject2()
{
x = i
};
}
}
}
public
class
MyObject2
{
public
int
x {
set
;
get
; }
public
IEnumerable<MyObject2> Items
{
get
{
return
from i
in
Enumerable.Range(0, 10)
select
new
MyObject2()
{
x = i
};
}
}
}
private
void
SubGrid_DataLoading(
object
sender, 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(
"x"
) });
}
}
}
For the firs time it is child one and then it becomes self-hierarchical. Everything is OK, but in the real programm we use WCF service and MyObject and MyObject2 are DataContracts, and we need to call a WCF service in the get-methods of the Items property.
So, I ask you for help: How could I call the WFC method or maybe there is another way to make such hierarchy.