How to reproduce:
public partial class RadForm1 : RadForm
{
public RadForm1()
{
InitializeComponent();
var __listViewDetailColumnName = new ListViewDetailColumn("columnHeader_name", "Name");
var __listViewDetailColumnType = new ListViewDetailColumn("columnHeader_type", "Type");
var __listViewDetailColumnDescription = new ListViewDetailColumn("columnHeader_description", "Description")
{
Width = 281F
};
this.listView1.Columns.AddRange(new[] {
__listViewDetailColumnName,
__listViewDetailColumnType,
__listViewDetailColumnDescription});
this.listView1.AllowEdit = false;
this.listView1.AllowRemove = false;
this.listView1.EnableColumnSort = true;
this.listView1.EnableSorting = true;
this.listView1.HeaderHeight = 25F;
this.listView1.ItemSpacing = -1;
this.listView1.KeyboardSearchEnabled = true; this.listView1.SelectLastAddedItem = false;
this.listView1.ShowGridLines = true;
var __sortDescriptor1 = new Telerik.WinControls.Data.SortDescriptor
{
PropertyName = __listViewDetailColumnName.Name,
Direction = ListSortDirection.Ascending
};
this.listView1.SortDescriptors.AddRange(new[] { __sortDescriptor1 });
this.listView1.ViewType = ListViewType.DetailsView;
}
private void buttonClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void buttonPopulateOk_Click(object sender, EventArgs e)
{
this.Populate(10000);
}
private void buttonPopulateError_Click(object sender, EventArgs e)
{
this.Populate(10001);
}
private void Populate(int count)
{
this.listView1.BeginUpdate();
this.listView1.Items.Clear();
for (var __i = 1; __i <= count; __i++)
{
var __name = String.Format(@"Item-{0:D5}", __i);
var __type = String.Format(@"Type-{0:D5}", __i);
var __description = String.Format(@"Description-{0:D5}", __i);
var __item = new ListViewDataItem(__name);
__item.SubItems.Add(__name);
__item.SubItems.Add(__type);
__item.SubItems.Add(__description);
this.listView1.Items.Add(__item);
}
this.listView1.EndUpdate();
}
}
Workaround: after the addition of the items, set the current item and then add the sort descriptor
public partial class RadForm1 : RadForm
{
ListViewDetailColumn __listViewDetailColumnName;
public RadForm1()
{
InitializeComponent();
__listViewDetailColumnName = new ListViewDetailColumn("columnHeader_name", "Name");
var __listViewDetailColumnType = new ListViewDetailColumn("columnHeader_type", "Type");
var __listViewDetailColumnDescription = new ListViewDetailColumn("columnHeader_description", "Descripti
{
Width = 281F
};
this.listView1.Columns.AddRange(new[] {
__listViewDetailColumnName,
__listViewDetailColumnType,
__listViewDetailColumnDescription});
this.listView1.AllowEdit = false;
this.listView1.AllowRemove = false;
this.listView1.EnableColumnSort = true;
this.listView1.EnableSorting = true;
this.listView1.HeaderHeight = 25F;
this.listView1.ItemSpacing = -1;
this.listView1.KeyboardSearchEnabled = true; this.listView1.SelectLastAddedItem = false;
this.listView1.ShowGridLines = true;
this.listView1.ViewType = ListViewType.DetailsView;
}
private void buttonClose_Click(object sender, EventArgs e)
{
this.Close();
}
private void buttonPopulateOk_Click(object sender, EventArgs e)
{
this.Populate(10000);
}
private void buttonPopulateError_Click(object sender, EventArgs e)
{
this.Populate(10001);
}
private void Populate(int count)
{
this.listView1.BeginUpdate();
this.listView1.Items.Clear();
for (var __i = 1; __i <= count; __i++)
{
var __name = String.Format(@"Item-{0:D5}", __i);
var __type = String.Format(@"Type-{0:D5}", __i);
var __description = String.Format(@"Description-{0:D5}", __i);
var __item = new ListViewDataItem(__name);
__item.SubItems.Add(__name);
__item.SubItems.Add(__type);
__item.SubItems.Add(__description);
this.listView1.Items.Add(__item);
}
this.listView1.EndUpdate();
this.listView1.CurrentItem = this.listView1.Items[0];
var __sortDescriptor1 = new Telerik.WinControls.Data.SortDescriptor
{
PropertyName = __listViewDetailColumnName.Name,
Direction = ListSortDirection.Ascending
};
this.listView1.SortDescriptors.AddRange(new[] { __sortDescriptor1 });
this.listView1.CurrentItem = null;
}
}