or
<
Window
x:Class
=
"VisionRT.CRM.WPF.TelerikMainWindow"
mc:Ignorable
=
"d"
DataContext
=
"{Binding Main, Source={StaticResource Locator}}"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
xmlns:telerikData
=
"clr-namespace:Telerik.Windows.Data;assembly=Telerik.Windows.Data"
xmlns:telerikControls
=
"clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls"
xmlns:System
=
"clr-namespace:System;assembly=mscorlib"
d:DesignHeight
=
"390"
d:DesignWidth
=
"729"
Width
=
"650"
Loaded
=
"Window_Loaded"
>
<
Grid
>
<
telerik:RadGridView
HorizontalAlignment
=
"Stretch"
Margin
=
"12,62,12,0"
Name
=
"radGridView1"
ItemsSource
=
"{Binding Path=ContactList, Mode=TwoWay}"
AutoGenerateColumns
=
"False"
IsSynchronizedWithCurrentItem
=
"True"
VerticalAlignment
=
"Top"
Height
=
"248"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
Header
=
"Title"
DataMemberBinding
=
"{Binding Title}"
Width
=
"*"
IsGroupable
=
"True"
>
<
telerik:GridViewDataColumn.AggregateFunctions
>
<
telerikData:CountFunction
Caption
=
"Count: "
/>
</
telerik:GridViewDataColumn.AggregateFunctions
>
</
telerik:GridViewDataColumn
>
<
telerik:GridViewDataColumn
Header
=
"First Name"
DataMemberBinding
=
"{Binding FirstName}"
Width
=
"*"
IsGroupable
=
"True"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
</
Grid
>
</
Window
>
<
telerik:RadGridView
x:Name
=
"rgvData"
CanUserFreezeColumns
=
"False"
GridLinesVisibility
=
"Horizontal"
IsReadOnly
=
"False"
AutoGenerateColumns
=
"False"
telerik:Theming.Theme
=
"Office_Blue"
ItemsSource
=
"{Binding}"
>
<
telerik:RadGridView.ChildTableDefinitions
>
<
telerik:GridViewTableDefinition
/>
</
telerik:RadGridView.ChildTableDefinitions
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StudentID}"
Header
=
"Category ID"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StudentFN}"
Header
=
"Category Name"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StudentLN}"
Header
=
"Description"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Picture}"
Header
=
"Picture"
/>
</
telerik:RadGridView.Columns
>
<
telerik:RadGridView.HierarchyChildTemplate
>
<
DataTemplate
>
<
telerik:RadGridView
x:Name
=
"RadGridView1"
Loaded
=
"rgvData_Loaded"
ShowInsertRow
=
"True"
CanUserInsertRows
=
"True"
ItemsSource
=
"{Binding Subjects}"
CanUserFreezeColumns
=
"False"
AutoGenerateColumns
=
"False"
ShowGroupPanel
=
"False"
IsReadOnly
=
"False"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding SubjectID}"
Header
=
"Order ID"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding SubjectName}"
Header
=
"Employee ID"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding SubjectProfessor}"
Header
=
"Order Date"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding ShipCountry}"
Header
=
"Ship Country"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
</
DataTemplate
>
</
telerik:RadGridView.HierarchyChildTemplate
>
</
telerik:RadGridView
>
public
partial
class
MainWindow : Window
{
DataAccessDataContext m_dcData;
public
MainWindow()
{
InitializeComponent();
this
.Loaded +=
new
RoutedEventHandler(MainWindow_Loaded);
this
.rgvData.Items.CollectionChanged +=
new
NotifyCollectionChangedEventHandler(Items_CollectionChanged);
rgvData.Filtered +=
new
EventHandler<Telerik.Windows.Controls.GridView.GridViewFilteredEventArgs>(rgvData_Filtered);
}
void
rgvData_Loaded(
object
sender, RoutedEventArgs e)
{
var childGrid = (RadGridView)sender;
var parentRow = childGrid.ParentRow;
if
(parentRow !=
null
)
{
rgvData.SelectedItem = childGrid.DataContext;
parentRow.IsExpandedChanged +=
new
RoutedEventHandler(parentRow_IsExpandedChanged);
}
}
void
parentRow_IsExpandedChanged(
object
sender, RoutedEventArgs e)
{
rgvData.SelectedItem = ((GridViewRow)sender).DataContext;
}x
void
rgvData_Filtered(
object
sender, Telerik.Windows.Controls.GridView.GridViewFilteredEventArgs e)
{
DataContext = m_dcData;
m_dcData =
new
DataAccessDataContext();
m_dcData.Log = Console.Out;
rgvData.ItemsSource = m_dcData.Students;
rgvData.ShowInsertRow =
true
;
}
private
void
Items_CollectionChanged(
object
sender, NotifyCollectionChangedEventArgs e)
{
try
{
if
(e.Action == NotifyCollectionChangedAction.Add)
{
foreach
(Student item
in
e.NewItems)
{
m_dcData.Students.InsertOnSubmit(item);
}
}
if
(e.Action == NotifyCollectionChangedAction.Remove)
{
foreach
(Student item
in
e.OldItems)
{
m_dcData.Students.DeleteOnSubmit(item);
}
}
}
catch
(Exception s)
{ }
}
void
MainWindow_Loaded(
object
sender, RoutedEventArgs e)
{
m_dcData =
new
DataAccessDataContext();
m_dcData.Log = Console.Out;
rgvData.ItemsSource = m_dcData.Students;
rgvData.ShowInsertRow =
true
;
rgvData.ItemsSource = m_dcData.Students;
rgvData.ShowInsertRow =
true
;
}
}