or
private
void
OnDragQueryHandler(
object
sender, DragDropQueryEventArgs e)
{
if
(e.Options.Status == DragStatus.DragQuery)
{
RadTreeViewItem item = e.OriginalSource
as
RadTreeViewItem;
ContentControl cue =
new
ContentControl();
cue.ContentTemplate =
this
.Resources[
"ApplicationDragTemplate"
]
as
DataTemplate;
cue.Content =
new
TextBlock()
{
Padding =
new
Thickness(5),
Background =
new
SolidColorBrush(Colors.LightBlue),
FontSize = 12
};
if
(item.Item
is
CustomItem)
{
// do stuff
}
else
{
e.QueryResult =
false
;
return
;
}
e.Options.DragCue = cue;
}
e.QueryResult =
true
;
}
private
void
OnDragInfoHandler(
object
sender, DragDropEventArgs e)
{
if
(e.Options.Status == DragStatus.DragComplete)
{
// do stuff
}
}
And drop code:
private
void
OnDropQueryHandler(
object
sender, DragDropQueryEventArgs e)
{
var payload = e.Options.Payload;
e.QueryResult = payload
is
CustomItem;
}
private
void
OnDropInfoHandler(
object
sender, DragDropEventArgs e)
{
if
(e.Options.Status == DragStatus.DropPossible)
{
UI_RadChart.BorderBrush = WPConstants.DRAG_BRUSH;
}
else
{
UI_RadChart.BorderBrush =
null
;
}
if
(e.Options.Status == DragStatus.DropComplete)
{
// DO STUFF, NOT REACHING HERE
}
}
var cmd =
default
(RoutedUICommand);
switch
(newVal)
{
case
Go.Previous:
{
cmd = RadGridViewCommands.MoveUp
as
RoutedUICommand;
}
break
;
case
Go.Next:
{
cmd = RadGridViewCommands.MoveDown
as
RoutedUICommand;
}
break
;
}
if
(cmd !=
null
&& cmd.CanExecute(
null
, gridView))
{
cmd.Execute(
null
, gridView);
var selectCmd = RadGridViewCommands.SelectCurrentUnit
as
RoutedUICommand;
if
(selectCmd !=
null
&& selectCmd.CanExecute(
null
, gridView))
{
selectCmd.Execute(
null
, gridView);
}
}
<
Telerik:RadGridView
x:Name
=
"uxGratuitiesDataGrid"
Margin
=
"-11,-11,-11,0"
Grid.Row
=
"0"
IsReadOnly
=
"True"
CanUserSortColumns
=
"True"
CanUserFreezeColumns
=
"False"
CanUserReorderColumns
=
"False"
AutoExpandGroups
=
"False"
ColumnWidth
=
"*"
AutoGenerateColumns
=
"False"
RowIndicatorVisibility
=
"Collapsed"
ShowGroupPanel
=
"False"
ShowColumnFooters
=
"True"
IsFilteringAllowed
=
"False"
ItemsSource
=
"{Binding SelectedGroupBooking.DailyBreakDown, Source={StaticResource Presenter}}"
>
<
Telerik:RadGridView.Columns
>
<!-- Gratuity amount -->
<
Telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Gratuity.BaseAmount, Converter={StaticResource AmountConverter}, UpdateSourceTrigger=PropertyChanged}"
Header
=
"Base Amount"
>
</
Telerik:GridViewDataColumn
>
<!-- Total Gratuity amount -->
<
Telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Gratuity.TotalAmount, Converter={StaticResource AmountConverter}}"
Header
=
"Total Amount"
>
<
Telerik:GridViewDataColumn.AggregateFunctions
>
<
Telerik:SumFunction
SourceField
=
"Gratuity.TotalAmount"
/>
</
Telerik:GridViewDataColumn.AggregateFunctions
>
</
Telerik:GridViewDataColumn
>
</
Telerik:RadGridView.Columns
>
public
ObservableCollection<VomRoomStayBreakDown> DailyBreakDown
{
get
{
return
_dailyBreakDown; }
set
{ _dailyBreakDown = value; OnPropertyChanged(
"DailyBreakDown"
); }
}
public
VomGratuity Gratuity
{
get
{
return
_gratuity; }
set
{ _gratuity = value; OnPropertyChanged(
"Gratuity"
); }
}
public
FldInteger Quantity
{
get
{
return
_quantity; }
set
{ _quantity = value; OnPropertyChanged(
"Quantity"
); }
}
public
VomAmount BaseAmount
{
get
{
return
_baseAmount; }
set
{ _baseAmount = value; OnPropertyChanged(
"BaseAmount"
); }
}
public
VomAmount TotalAmount
{
get
{
return
_totalAmount; }
set
{ _totalAmount = value; OnPropertyChanged(
"TotalAmount"
); }
}
void
ChartArea_ItemClick(
object
sender, ChartItemClickEventArgs e)
{
// Here I can use e.DataPoint or e.ItemIndex
}