or
I looking for an event to handle before RadDataForm.CurrentItemChanged happens.
At CurrentItemChanged, the CurrentItem is already the new item, but I need to carry out some operations on the old item.
So I'm looking for something like "BeforeCurrentItemChanged" or "PreviewCurrentItemChanged" or "CurrentItemChanging" etc.
var grid = TableGrid; List<string> headers = new List<string>(from h in grid.ColumnHeaders.AsQueryable() select h.FriendlyName); int idColumn = headers.FindIndex(x => x == "Id") + 1; int productTypeColumn = headers.FindIndex(x => x == "Product Type") + 1; int titleColumn = headers.FindIndex(x => x == "Title") + 1; Collection<Collection<string>> contents = new Collection<Collection<string>>(); foreach(var row in grid.Rows) { var cells = row.GetChildren(); contents.Add(new Collection<string>() { cells[idColumn].FriendlyName, cells[productTypeColumn].FriendlyName, cells[titleColumn].FriendlyName }); } return contents;I
have a problem with CartesianCustomAnnotation. there is a RadCartesianChart with zoom ability,
<telerik:RadCartesianChart x:Name="chart" Zoom="{Binding Zoom, Mode=TwoWay}" > <telerik:RadCartesianChart.Behaviors > <telerik:ChartPanAndZoomBehavior ZoomMode="Both" PanMode="Horizontal" MouseWheelMode="Zoom" /> </telerik:RadCartesianChart.Behaviors><!--some codes--></<telerik:RadCartesianChart >System.Windows.Shapes.Polygon triangle = new Polygon();//some codes chart.Annotations.Add(new Telerik.Windows.Controls.ChartView.CartesianCustomAnnotation { HorizontalValue = somePointX,//DateTime VerticalValue=.somePointY, Content = triangle } );
<Window x:Class="ZoomMajorTickInterval.MainWindow" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Title="MainWindow" Height="350" Width="1280"> <Grid> <telerik:RadCartesianChart x:Name="Chart"> <telerik:RadCartesianChart.Grid> <telerik:CartesianChartGrid MajorLinesVisibility="XY" /> </telerik:RadCartesianChart.Grid> <telerik:RadCartesianChart.HorizontalAxis> <telerik:CategoricalAxis LabelFitMode="Rotate" /> </telerik:RadCartesianChart.HorizontalAxis> <telerik:RadCartesianChart.VerticalAxis> <telerik:LinearAxis/> </telerik:RadCartesianChart.VerticalAxis> <telerik:RadCartesianChart.Behaviors> <telerik:ChartPanAndZoomBehavior ZoomMode="Both" PanMode="Both" /> </telerik:RadCartesianChart.Behaviors> <telerik:RadCartesianChart.Series> <telerik:LineSeries ItemsSource="{Binding MyData}" CategoryBinding="PeriodText" ValueBinding="DataValue" /> </telerik:RadCartesianChart.Series> </telerik:RadCartesianChart> </Grid></Window>using System;using System.Windows;using System.Collections.ObjectModel;using Telerik.Windows.Controls.ChartView;namespace ZoomMajorTickInterval{ public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Random r = new Random(); MyData = new ObservableCollection<DataPoint>(); for (int ctr = 0; ctr < 500; ctr++) MyData.Add(new DataPoint() { PeriodText = "Q" + ctr.ToString(), DataValue = r.Next(1000) }); DataContext = this; CategoricalAxis axis = Chart.HorizontalAxis as CategoricalAxis; axis.MajorTickInterval = 5; Chart.HorizontalAxis.LabelInterval = 2; } public ObservableCollection<DataPoint> MyData { get; set; } } public class DataPoint { public string PeriodText {get; set;} public int DataValue { get; set; } }}<telerik:RadGridView Name="RadGridView" Grid.Row="1" ItemsSource="{Binding Path=Documents}" DataLoadMode="Asynchronous" AutoGenerateColumns="False" SelectionMode="Single" CanUserDeleteRows="False" CanUserInsertRows="False">
<telerik:RadGridView.Columns>
...
<telerik:GridViewDataColumn IsReadOnly="True" Header="Fichier(s) joint(s)" DataMemberBinding="{Binding Files}" > <telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<control:UserControl1 DataContext="{Binding Files}" />
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
</telerik:RadGridView.Columns>
...
</telerik:RadGridView>
Private Sub AddContractYearColumns() Dim sPeriod As String = String.Empty Dim iIndex As Integer = 0 Try Dim Years = From Yrs In gdcRAD.vw_ProjectYears Select Yrs.Year For Each Yr As String In Years If Yr.ToInteger >= Year(Date.Today) Then iIndex += 1 sPeriod = "Period" & iIndex.ToString("00") Dim column As New GridViewDataColumn() With column .Header = Yr .UniqueName = Yr .DataMemberBinding = New Binding(sPeriod) .DataFormatString = "0.00" .TextAlignment = TextAlignment.Right End With gvContractYrs.Columns.Add(column) Dim f As New Telerik.Windows.Data.SumFunction f.SourceField = sPeriod gvContractYrs.Columns(Yr).AggregateFunctions.Add(f) End If Next Catch ex As Exception Throw New RadException("Add Contract Year Columns", ex.Message, ex.InnerException) End TryEnd SubPrivate Sub DisplayAvailableEquipYrs() Try Dim EquipList = (From Equipment In gdcRAD.usp_YearsAvailable(Date.Today, False, False) Select Equipment).ToList gvContractYrs.ItemsSource = EquipList Catch ex As Exception Throw New RadException("Display Available Equipment Years", ex.Message, ex.InnerException) End TryEnd Sub