I have found a bug in the RadGridView. See bottom of post for source code that demonstrates it.
If a RadGridView contains a GridViewToggleRowDetailsColumn, then a certain use case leads to an infinite loop.
Reproduction:
1) In the grid in the sample project, double click the Name cell to edit the name in the grid.
2) Click on the right side of the name to unselect the text in the editing TextBox that appears
3) Use CTRL+Left Arrow to move the cursor word by word towards the beginning of the name.
4) Once arrived at the beginning of the name, use CTRL+Left Arrow again
Expected result: nothing as the cursor is at the beginning of the textbox
Actual result: infinite loop occurs.
This happens in both debug and release, with or without a debugger attached. When a debugger is attached and I pause it, it always is paused at:
System.dll!System.Net.SafeCloseSocket.InnerSafeCloseSocket.Accept(System.Net.SafeCloseSocket socketHandle, byte[] socketAddress, ref int socketAddressSize)
My setup is:
Windows 7 64 bit
IE 8 version 8.0.7600.16385
also occurs in Chrome: 7.0.517.44
Silverlight version: 4.0.50917.0
.NET 4
Telerik version: 2010.2.812.1040
Here is a simple sample that reproduces it:
MainPage.xaml
<UserControl x:Class="RadGridViewTest.MainPage" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"> <Grid x:Name="LayoutRoot"> <telerik:RadGridView x:Name="_grid"> <telerik:RadGridView.Columns> <telerik:GridViewToggleRowDetailsColumn /> </telerik:RadGridView.Columns> </telerik:RadGridView> </Grid> </UserControl>MainPage.xaml.cs
using System.Collections.Generic; using System.Windows.Controls; namespace RadGridViewTest { public class MyData { public string Name { get; set; } public int Age { get; set; } } public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); List<MyData> data = new List<MyData> { new MyData() { Name = "Henry Wordsworth Longfellow the Fourth", Age = 25 } }; _grid.ItemsSource = data; } } }