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
Try
End
Sub
Private
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
Try
End
Sub