or
<
Window
x:Class
=
"WpfRibbonMenuKeys.MainWindow"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"525"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
>
<
Grid
>
<
telerik:RadRibbonView
Name
=
"radRibbonView1"
VerticalAlignment
=
"Top"
telerik:KeyTipService.IsKeyTipsEnabled
=
"True"
>
<
telerik:RadRibbonTab
Header
=
"RibbonTab"
telerik:KeyTipService.AccessText
=
"H"
>
<
telerik:RadRibbonGroup
Header
=
"SomeGroup"
telerik:ScreenTip.Title
=
"SomeGroup"
DialogLauncherVisibility
=
"Collapsed"
>
<
telerik:RadRibbonDropDownButton
Text
=
"DropDown"
Size
=
"Large"
telerik:KeyTipService.AccessText
=
"S"
>
<
telerik:RadRibbonDropDownButton.DropDownContent
>
<
telerik:RadContextMenu
>
<
telerik:RadMenuItem
Header
=
"Test1"
telerik:KeyTipService.AccessText
=
"1"
/>
<
telerik:RadMenuItem
Header
=
"Test2"
telerik:KeyTipService.AccessText
=
"2"
>
<
telerik:RadMenuItem
Header
=
"Test2.1"
telerik:KeyTipService.AccessText
=
"21"
/>
<
telerik:RadMenuItem
Header
=
"Test2.2"
telerik:KeyTipService.AccessText
=
"22"
/>
<
telerik:RadMenuItem
Header
=
"Test2.3"
telerik:KeyTipService.AccessText
=
"23"
/>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
Header
=
"Test3"
telerik:KeyTipService.AccessText
=
"3"
/>
</
telerik:RadContextMenu
>
</
telerik:RadRibbonDropDownButton.DropDownContent
>
</
telerik:RadRibbonDropDownButton
>
</
telerik:RadRibbonGroup
>
</
telerik:RadRibbonTab
>
</
telerik:RadRibbonView
>
</
Grid
>
</
Window
>
GridViewDataColumn
cell template programmatically so that content inside CellTemplate
become disable.<
telerik:GridViewDataColumn
x:Name
=
"clmDelete"
Width
=
"30"
Header
=
""
HeaderTextAlignment
=
"Center"
>
<
telerik:GridViewDataColumn.CellTemplate
>
<
DataTemplate
>
<
my1:Button
x:Name
=
"btnDelete"
BorderThickness
=
"0"
Background
=
"White"
Click
=
"btnDelete_Click"
HorizontalAlignment
=
"Left"
Grid.Column
=
"0"
Width
=
"20"
Height
=
"20"
>
<
Image
Source
=
"/UI.SmartClient;component/~or83E_files/delete16.ico"
Width
=
"Auto"
/>
</
my1:Button
>
</
DataTemplate
>
</
telerik:GridViewDataColumn.CellTemplate
>
</
telerik:GridViewDataColumn
>
foreach (Telerik.Windows.Controls.GridViewColumn column in gv.Columns)
{
column.isEnabled=false;
}
<
Window
x:Class
=
"RadGridViewAggregateFunctionTest.MainView"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"600"
>
<
Grid
x:Name
=
"grid"
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"auto"
/>
<
RowDefinition
/>
</
Grid.RowDefinitions
>
<
StackPanel
Orientation
=
"Horizontal"
>
<
TextBlock
Text
=
"number of data columns : "
VerticalAlignment
=
"Center"
/>
<
telerik:RadNumericUpDown
x:Name
=
"radNumericUpDown"
IsInteger
=
"True"
ValueChanged
=
"radNumericUpDown_ValueChanged"
Value
=
"2"
/>
<
CheckBox
Content
=
"Add Count Function at Time column"
VerticalAlignment
=
"Center"
Margin
=
"20,0,0,0"
Checked
=
"CheckBox_Checked"
/>
<
Button
x:Name
=
"LoadButton"
Grid.Row
=
"0"
Width
=
"100"
Content
=
"Load"
Margin
=
"20,0,0,0"
Click
=
"LoadButton_Click"
/>
</
StackPanel
>
<
telerik:RadGridView
x:Name
=
"radGridView"
Grid.Row
=
"1"
ItemsSource
=
"{Binding}"
ShowColumnFooters
=
"True"
ShowGroupPanel
=
"False"
>
</
telerik:RadGridView
>
</
Grid
>
</
Window
>
using
System;
using
System.Linq;
using
System.Data;
using
System.Windows;
using
Telerik.Windows.Controls;
using
Telerik.Windows.Data;
using
System.IO;
using
System.Windows.Controls;
namespace
RadGridViewAggregateFunctionTest
{
public
partial
class
MainView : Window
{
Random random =
new
Random();
private
const
int
TIME_COLUMN_INDEX = 0;
int
numberOfColumns = 0;
bool
shouldAddCountFunctionAtTimeColumn =
false
;
public
MainView()
{
InitializeComponent();
}
private
void
LoadButton_Click(
object
sender, RoutedEventArgs e)
{
radGridView.DataContext = GenerateTable();
AddAggregateFunctions(radGridView);
}
private
void
AddAggregateFunctions(RadGridView gridView)
{
foreach
(var column
in
gridView.Columns)
{
if
(column.DisplayIndex == TIME_COLUMN_INDEX)
{
if
(shouldAddCountFunctionAtTimeColumn)
{
CountFunction countFunction =
new
CountFunction();
countFunction.Caption =
"Count : "
;
column.AggregateFunctions.Add(countFunction);
}
continue
;
}
MinFunction minFunction =
new
MinFunction();
minFunction.Caption =
"Min : "
;
column.AggregateFunctions.Add(minFunction);
MaxFunction maxFunction =
new
MaxFunction();
maxFunction.Caption =
"Max : "
;
column.AggregateFunctions.Add(maxFunction);
AverageFunction averageFunction =
new
AverageFunction();
averageFunction.Caption =
"Average : "
;
column.AggregateFunctions.Add(averageFunction);
}
gridView.CalculateAggregates();
}
private
DataTable GenerateTable()
{
DataTable table =
new
DataTable(
"My Table"
);
GenerateColumns(table);
GenerateRows(table);
return
table;
}
private
void
GenerateColumns(DataTable table)
{
DataColumn column =
new
DataColumn(
"Time"
,
typeof
(DateTime));
table.Columns.Add(column);
for
(
int
i = 0; i < numberOfColumns; i++)
{
string
columnName = Path.GetRandomFileName().Substring(0, 4);
column =
new
DataColumn(columnName,
typeof
(
float
));
table.Columns.Add(column);
}
}
private
void
GenerateRows(DataTable table)
{
DataRow row;
for
(
int
i = 0; i < 20; i++)
{
row = table.NewRow();
row[
"Time"
] = DateTime.Now.AddSeconds(i);
foreach
(DataColumn column
in
table.Columns)
{
if
(column.ColumnName ==
"Time"
)
{
continue
;
}
row[column.ColumnName] = (
float
)random.NextDouble() * 50;
}
table.Rows.Add(row);
}
}
private
void
radNumericUpDown_ValueChanged(
object
sender, RadRangeBaseValueChangedEventArgs e)
{
Int32.TryParse(radNumericUpDown.Value.ToString(),
out
numberOfColumns);
}
private
void
CheckBox_Checked(
object
sender, RoutedEventArgs e)
{
shouldAddCountFunctionAtTimeColumn = ((CheckBox)sender).IsChecked.Value;
}
}
}