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; } }}