<telerik:RadGridView AutoGenerateColumns="False" NewRowStyle="{StaticResource NewRowStyle}" RowStyle="{StaticResource RowStyle}" Foreground="White" HorizontalGridLinesBrush="White" Margin="10,10,210,22" Name="groupGrid" SelectionMode="Single" SelectionUnit="FullRow" VerticalGridLinesBrush="White" SelectionChanged="groupGrid_SelectionChanged" CellEditEnded="groupGrid_CellEditEnding" RowIndicatorVisibility="Collapsed" ShowGroupPanel="False" ShowInsertRow="True" RowEditEnded="groupGrid_RowEditEnded">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Task Name: " DataMemberBinding="{Binding Name}" />
<telerik:GridViewDataColumn Header="Description: " DataMemberBinding="{Binding Description}" />
<telerik:GridViewDataColumn Header="Solution: " DataMemberBinding="{Binding Solution}" />
<my:TimePickerColumn DataMemberBinding="{Binding StartTime}" Header="Start Time" TimeInterval="0:30:0"/>
<telerik:GridViewDataColumn Header="End Time: " DataMemberBinding="{Binding EndTime}" />
<telerik:GridViewDataColumn Header="Elapsed:" UniqueName="Elapsed" DataMemberBinding="{Binding ElapsedTime}" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
public
class
TimePickerColumn : GridViewBoundColumnBase
{
public
TimeSpan TimeInterval
{
get
{
return
(TimeSpan)GetValue(TimeIntervalProperty);
}
set
{
SetValue(TimeIntervalProperty, value);
}
}
public
static
readonly
DependencyProperty TimeIntervalProperty = DependencyProperty.Register(
"TimeInterval"
,
typeof
(TimeSpan),
typeof
(TimePickerColumn),
new
PropertyMetadata(TimeSpan.FromHours(1d)));
public
override
FrameworkElement CreateCellEditElement(GridViewCell cell,
object
dataItem)
{
this
.BindingTarget = RadTimePicker.SelectedValueProperty;
RadTimePicker picker =
new
RadTimePicker();
picker.IsTooltipEnabled =
false
;
picker.TimeInterval =
this
.TimeInterval;
picker.SetBinding(
this
.BindingTarget,
this
.CreateValueBinding());
return
picker;
}
public
override
object
GetNewValueFromEditor(
object
editor)
{
RadTimePicker picker = editor
as
RadTimePicker;
if
(picker !=
null
)
{
picker.DateTimeText = picker.SelectedTime.Value.ToString();
}
return
base
.GetNewValueFromEditor(editor);
}
private
Binding CreateValueBinding()
{
Binding valueBinding =
new
Binding();
valueBinding.Mode = BindingMode.TwoWay;
valueBinding.NotifyOnValidationError =
true
;
valueBinding.ValidatesOnExceptions =
true
;
valueBinding.UpdateSourceTrigger = UpdateSourceTrigger.Explicit;
valueBinding.Path =
new
PropertyPath(
this
.DataMemberBinding.Path.Path);
return
valueBinding;
}
}
<
telerik:GridViewDataColumn
UniqueName
=
"List"
IsFilterable
=
"False"
Width
=
"100"
>
<
telerik:GridViewColumn.HeaderCellStyle
>
<
Style
TargetType
=
"telerik:GridViewHeaderCell"
>
<
Setter
Property
=
"Template"
>
<
Setter.Value
>
<
ControlTemplate
TargetType
=
"telerik:GridViewHeaderCell"
>
<
StackPanel
Orientation
=
"Vertical"
>
<
TextBlock
Text
=
"Edit"
HorizontalAlignment
=
"Center"
></
TextBlock
>
<
CheckBox
x:Name
=
"AllEdited"
HorizontalAlignment
=
"Center"
VerticalAlignment
=
"Center"
Click
=
"AllEdited_Click"
Validation.ErrorTemplate
=
"{x:Null}"
IsEnabled
=
"{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=DataContext.EditMode}"
></
CheckBox
>
</
StackPanel
>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
</
Style
>
</
telerik:GridViewColumn.HeaderCellStyle
>
<
telerik:GridViewColumn.CellStyle
>
<
Style
TargetType
=
"telerikGridView:GridViewCell"
>
<
Setter
Property
=
"Template"
>
<
Setter.Value
>
<
ControlTemplate
TargetType
=
"telerikGridView:GridViewCell"
>
<
CheckBox
HorizontalAlignment
=
"Center"
VerticalAlignment
=
"Center"
IsChecked
=
"{Binding CuestionarioVisible}"
Validation.ErrorTemplate
=
"{x:Null}"
IsEnabled
=
"{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=DataContext.EditMode}"
></
CheckBox
>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
</
Style
>
</
telerik:GridViewColumn.CellStyle
>
</
telerik:GridViewDataColumn
>
<
DockPanel
LastChildFill
=
"True"
>
<
telerikNavigation:RadTreeView
x:Name
=
"uiActivitiesList"
IsDragDropEnabled
=
"True"
Margin
=
"-20,0,0,0"
BorderThickness
=
"0"
HorizontalContentAlignment
=
"Stretch"
HorizontalAlignment
=
"Stretch"
TextDropAfter
=
"Drop After"
TextDropBefore
=
"Drop Before"
SelectionChanged
=
"uiActivitiesList_SelectionChanged"
SelectionMode
=
"Multiple"
dragDrop:RadDragAndDropManager.AllowDrop
=
"True"
IsDragPreviewEnabled
=
"False"
IsDragTooltipEnabled
=
"True"
DragEnded
=
"uiActivitiesList_DragEnded"
SourceUpdated
=
"uiActivitiesList_SourceUpdated"
ItemsSource
=
"{Binding ActivityModelViewCollection, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True,Mode=OneWay}"
/>
</
DockPanel
>