It seems that the two don't get along. Code:
<
Window
x:Class
=
"DeferredModeAndRowsReorder.MainWindow"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
xmlns:local
=
"clr-namespace:DeferredModeAndRowsReorder"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"525"
WindowState
=
"Maximized"
>
<
Grid
>
<
Grid.Resources
>
<
Style
TargetType
=
"telerik:GridViewRow"
x:Key
=
"DraggedRowStyle"
>
<
Setter
Property
=
"telerik:DragDropManager.AllowDrag"
Value
=
"True"
/>
<
Setter
Property
=
"telerik:DragDropManager.TouchDragTrigger"
Value
=
"TapAndHold"
/>
</
Style
>
</
Grid.Resources
>
<
telerik:RadDocking
x:Name
=
"radDocking"
DragDropMode
=
"Deferred"
CloseButtonPosition
=
"InPaneAndGroup"
>
<
telerik:RadDocking.DocumentHost
>
<
telerik:RadSplitContainer
x:Name
=
"dh"
>
<
telerik:RadPaneGroup
x:Name
=
"dg"
>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
</
telerik:RadDocking.DocumentHost
>
<
telerik:RadSplitContainer
telerik:DockingPanel.InitialSize
=
"170,150"
MaxWidth
=
"600"
Name
=
"LeftContainer"
InitialPosition
=
"DockedLeft"
>
<
telerik:RadPaneGroup
x:Name
=
"Group1"
>
<
telerik:RadPane
CanUserClose
=
"False"
x:Name
=
"Pane1"
Header
=
"Server Explorer"
CanDockInDocumentHost
=
"False"
>
</
telerik:RadPane
>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
<
telerik:RadSplitContainer
telerik:DockingPanel.InitialSize
=
"170,150"
MaxWidth
=
"600"
Orientation
=
"Vertical"
Name
=
"RightContainer"
InitialPosition
=
"DockedRight"
>
<
telerik:RadPaneGroup
x:Name
=
"Group2"
>
<
telerik:RadPane
CanUserClose
=
"False"
x:Name
=
"Pane2"
Header
=
"Toolbox"
CanDockInDocumentHost
=
"False"
>
</
telerik:RadPane
>
</
telerik:RadPaneGroup
>
<
telerik:RadPaneGroup
x:Name
=
"Group3"
>
<
telerik:RadPane
CanUserClose
=
"False"
x:Name
=
"Pane3"
Header
=
"Properties"
CanDockInDocumentHost
=
"False"
>
</
telerik:RadPane
>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
<
telerik:RadSplitContainer
telerik:DockingPanel.InitialSize
=
"170,300"
Orientation
=
"Horizontal"
Name
=
"BottomContainer"
InitialPosition
=
"DockedBottom"
>
<
telerik:RadPaneGroup
>
<
telerik:RadPane
CanUserClose
=
"False"
Header
=
"System"
CanDockInDocumentHost
=
"False"
>
</
telerik:RadPane
>
<
telerik:RadPane
CanUserClose
=
"False"
IsSelected
=
"True"
Header
=
"Global"
CanDockInDocumentHost
=
"False"
>
</
telerik:RadPane
>
<
telerik:RadPane
CanUserClose
=
"False"
Header
=
"Watch"
CanDockInDocumentHost
=
"False"
>
<
telerik:RadGridView
x:Name
=
"RadGridView1"
GroupRenderMode
=
"Flat"
ShowGroupPanel
=
"False"
CanUserResizeRows
=
"True"
ItemsSource
=
"{Binding Items}"
RowStyle
=
"{StaticResource DraggedRowStyle}"
AllowDrop
=
"True"
CanUserSortColumns
=
"False"
IsFilteringAllowed
=
"False"
local:RowReorderBehavior.IsEnabled
=
"True"
telerik:ScrollingSettingsBehavior.IsEnabled
=
"True"
telerik:ScrollingSettingsBehavior.ScrollAreaPadding
=
"30"
telerik:ScrollingSettingsBehavior.ScrollStep
=
"24"
telerik:ScrollingSettingsBehavior.ScrollStepTime
=
"00:00:00.05"
>
<
telerik:RadGridView.Resources
>
<
DataTemplate
x:Key
=
"DraggedItemTemplate"
>
<
StackPanel
>
<
StackPanel
Orientation
=
"Horizontal"
>
<
TextBlock
Text
=
"Dragging:"
/>
<
TextBlock
Text
=
"{Binding CurrentDraggedItem}"
FontWeight
=
"Bold"
/>
</
StackPanel
>
<
StackPanel
Orientation
=
"Horizontal"
>
<
TextBlock
Text
=
"{Binding CurrentDropPosition}"
FontWeight
=
"Bold"
MinWidth
=
"45"
/>
<
TextBlock
Text
=
", ("
Foreground
=
"Gray"
/>
<
TextBlock
Text
=
"{Binding CurrentDraggedOverItem}"
/>
<
TextBlock
Text
=
")"
Foreground
=
"Gray"
/>
</
StackPanel
>
</
StackPanel
>
</
DataTemplate
>
</
telerik:RadGridView.Resources
>
</
telerik:RadGridView
>
</
telerik:RadPane
>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
</
telerik:RadDocking
>
</
Grid
>
</
Window
>
And I just generated a simple items source in the code behind:
public
partial
class
MainWindow : Window
{
private
ObservableCollection<
int
> _items =
new
ObservableCollection<
int
>();
public
MainWindow()
{
InitializeComponent();
for
(
int
i = 0; i < 1000; i++)
{
_items.Add(i);
}
this
.DataContext =
this
;
}
public
ObservableCollection<
int
> Items
{
get
{
return
_items;
}
}
}
The row reorder behavior code is taken from your examples. When trying to reorder rows, then I see the deferred mode adorner and the docking compasses.
This is not the only problem. Try reordering the rows... After few drag and drops (Usually a quick drag and drop), the "Watch" pane (where the GridView was in) will disappear (because it was removed from its original group and added a some group with no items).