public
enum
Category { Spicy, Fat, Tasty, Expensive};
public
class
Dish
{
public
string
Name {
get
;
set
;}
public
Category[] Categories {
get
;
set
;}
}
public
class
Test
{
[Display(AutoGenerateField =
false
)]
[RangeAttribute(1, 10)]
public
int
Id {
get
;
set
; }
[DisplayName(
"TestNumber"
)]
[Display(Order = 1)]
[Required(AllowEmptyStrings =
false
, ErrorMessage =
"Exception"
)]
public
string
Number {
get
;
set
; }
[Display(Order = 0)]
[Required(AllowEmptyStrings =
false
, ErrorMessage =
"Exception"
)]
public
string
Name {
get
;
set
; }
}
List<Test> testList =
new
List<Test>();
Test test =
null
;
for
(
int
i = 0; i < 10; i++)
{
test =
new
Test();
test.Id = i;
test.Name =
"Name"
+ i.ToString();
test.Number = i.ToString();
testList.Add(test);
}
radGridView.ItemsSource = testList;
<Style TargetType="{x:Type TabControl}" BasedOn="{StaticResource {telerik:ThemeResourceKey ThemeType=telerik:Expression_DarkTheme, ElementType=TabControl}}" />
private void BuildDiskIoDetailsGraph(ObservableCollection<DiskIoDetails> raw, Telerik.Windows.Controls.RadChart ctrlChart, string title, bool isPrefetch)
{
if (raw.Count > 0)
{
DataSeries chartSeries = new DataSeries();
chartSeries.Definition =
new LineSeriesDefinition() { ShowItemLabels = false, ShowItemToolTips = true };
ctrlChart.SamplingSettings.SamplingThreshold = 0;
ctrlChart.DefaultView.ChartArea.EnableAnimations =
false;
ctrlChart.DefaultView.ChartLegend.Visibility =
Visibility.Collapsed;
ctrlChart.DefaultView.ChartLegend.UseAutoGeneratedItems =
true;
ctrlChart.DefaultView.ChartArea.AxisX.Step = 20f;
ctrlChart.DefaultView.ChartArea.AxisX.AutoRange =
true;
ctrlChart.DefaultView.ChartArea.AxisX.Title =
"Time";
List<object> processList = raw.Select(d => d.GetType().InvokeMember("ProcessNamePID", BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty, null, d, null)).Distinct().ToList();
foreach (object process in processList)
{
Color color = GetNextColor();
if (process.ToString().ToLower().StartsWith("system")) color = Colors.Blue;
if (process.ToString().ToLower().StartsWith("winlogon")) color = Colors.Maroon;
if (process.ToString().ToLower().StartsWith("idle")) color = Colors.Green;
 
chartSeries.Definition.Appearance.Foreground =
new SolidColorBrush(color);
chartSeries.Definition.Appearance.Fill =
new SolidColorBrush(color);
chartSeries.Definition.Appearance.PointMark.Fill =
new SolidColorBrush(color);
chartSeries.Definition.Appearance.Stroke =
new SolidColorBrush(Colors.LightGray);
chartSeries.Definition.Appearance.PointMark.Stroke =
new SolidColorBrush(color);
List<DiskIoDetails> dataList = raw.Where(d => d.GetType().InvokeMember("ProcessNamePID", BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty, null, d, null).ToString().Equals(process.ToString())).ToList();
foreach (object item in dataList)
{
string startTime = item.GetType().InvokeMember("StartTime", BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty, null, item, null).ToString();
string offset = item.GetType().InvokeMember("ByteOffset", BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty, null, item, null).ToString().TrimStart("0x".ToCharArray());
string ioType = item.GetType().InvokeMember("IOType", BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty, null, item, null).ToString();
string endTime = item.GetType().InvokeMember("EndTime", BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty, null, item, null).ToString();
string processName = item.GetType().InvokeMember("ProcessNamePID", BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty, null, item, null).ToString();
if (ioType.ToLower().Contains("read")) ioType = "Read";
else ioType = "Write";
if (string.IsNullOrEmpty(offset)) offset = "0";
if (chartSeries != null)
{
double initTime = Convert.ToDouble(startTime) / _nsPerSec;
double complete = Convert.ToDouble(endTime) / _nsPerSec;
DataPoint dp = new DataPoint( (Convert.ToDouble(startTime) / _nsPerSec),long.Parse(offset, System.Globalization.NumberStyles.HexNumber));
dp.Tooltip =
string.Format("{0}{1}InitTime: {2}{1}Complete Time: {3}{1}{4}", ioType, Environment.NewLine, initTime, complete, processName);
chartSeries.Add(dp);
//m_Line.Interactivity.Tooltips.Add(string.Format("{0}{1}InitTime: {2}{1}Complete Time: {3}{1}{4}", ioType, Environment.NewLine, initTime, complete, processName));
}
}
}
ctrlChart.DefaultView.ChartArea.DataSeries.Add(chartSeries);
}
}
 
<
Window
x:Class
=
"HierarchiyGridSuccess.MainWindow"
xmlns:telerikData
=
"clr-namespace:Telerik.Windows.Data;assembly=Telerik.Windows.Data"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"525"
>
<
Grid
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
Height
=
"Auto"
/>
</
Grid.RowDefinitions
>
<
telerik:RadGridView
Grid.Row
=
"0"
x:Name
=
"rgvData"
ShowInsertRow
=
"True"
AutoGenerateColumns
=
"False"
telerik:Theming.Theme
=
"Windows7"
ItemsSource
=
"{Binding}"
>
<
telerik:RadGridView.ChildTableDefinitions
>
<
telerik:GridViewTableDefinition
/>
</
telerik:RadGridView.ChildTableDefinitions
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StudentID}"
Header
=
"Student ID"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StudentFN}"
Header
=
"Student First Name"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding StudentLN}"
Header
=
"Student Last Name"
/>
</
telerik:RadGridView.Columns
>
<
telerik:RadGridView.HierarchyChildTemplate
>
<
DataTemplate
>
<
telerik:RadGridView
x:Name
=
"RadGridView1"
Loaded
=
"rgvData_Loaded"
AutoGenerateColumns
=
"False"
ShowInsertRow
=
"False"
CanUserInsertRows
=
"False"
ItemsSource
=
"{Binding Subjects}"
ShowGroupPanel
=
"False"
IsReadOnly
=
"False"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding SubjectName}"
Header
=
"Subject Name"
/>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding SubjectProf}"
Header
=
"Professor"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
</
DataTemplate
>
</
telerik:RadGridView.HierarchyChildTemplate
>
</
telerik:RadGridView
>
<
Button
Content
=
"Save!"
Width
=
"Auto"
Height
=
"Auto"
Grid.Row
=
"1"
Click
=
"Button_Click"
/>
</
Grid
>
</
Window
>
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Windows;
using
System.Windows.Controls;
using
System.Windows.Data;
using
System.Windows.Documents;
using
System.Windows.Input;
using
System.Windows.Media;
using
System.Windows.Media.Imaging;
using
System.Windows.Navigation;
using
System.Windows.Shapes;
using
System.Collections.Specialized;
using
Telerik.Windows.Controls;
using
Telerik.Windows.Controls.GridView;
namespace
HierarchiyGridSuccess
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
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;
}
void
rgvData_Filtered(
object
sender, Telerik.Windows.Controls.GridView.GridViewFilteredEventArgs e)
{
rgvData.ItemsSource = m_dcData.Students;
}
private
void
Items_CollectionChanged(
object
sender, NotifyCollectionChangedEventArgs e)
{
try
{
if
(e.Action == NotifyCollectionChangedAction.Add)
{
foreach
(Student item
in
e.NewItems)
{
this
.m_dcData.Students.InsertAllOnSubmit(e.NewItems.OfType<Student>());
}
}
if
(e.Action == NotifyCollectionChangedAction.Remove)
{
this
.m_dcData.Students.DeleteAllOnSubmit(e.OldItems.OfType<Student>());
}
}
catch
(Exception s)
{ }
}
void
MainWindow_Loaded(
object
sender, RoutedEventArgs e)
{
m_dcData =
new
DataAccessDataContext();
m_dcData.Log = Console.Out;
DataContext = m_dcData.Students;
rgvData.ShowInsertRow =
true
;
}
private
void
Button_Click(
object
sender, RoutedEventArgs e)
{
var changes =
this
.m_dcData.GetChangeSet();
rgvData.BeginInsert();
MessageBox.Show(
string
.Format(
"There are {0} inserts and {1} deletes pending."
, changes.Inserts.Count, changes.Deletes.Count));
m_dcData.SubmitChanges();
}
}
}
Enter Name |
Text Box |
Department |
Combo box |
Gender |
Radio button |
Save |
Button |
Is it possible to create inside radgrid view ?
if possible mean give me some coding guidlines.
if not posible mean than which control i used to create these structure.
thank you.