BaseCheckedListBoxControl.CustomSort Event
Enables you to sort list items in custom order.
Namespace: DevExpress.XtraEditors
Assembly: DevExpress.XtraEditors.v24.2.dll
Declaration
[DXCategory("Behavior")]
public event EventHandler<CheckedListBoxCustomSortEventArgs> CustomSort
Event Data
The CustomSort event's data class is DevExpress.XtraEditors.Controls.CheckedListBoxCustomSortEventArgs.
Remarks
Handle the CustomSort
event to compare two neighboring items (e.Item1
and e.Item2
). You can compare items by their values (e.Value1
, e.Value2
) or display text (e.DisplayText1
, e.DisplayText2
). Set the e.Result
parameter to 1 to position the first item above the second item, or set it to -1 to position the second item above the first item.
For optimization purposes, the editor itself does not raise the CustomSort
event. Use the Sort() method to raise the CustomSort
event when needed. For example, you can call this method within the ItemCheck event.
Note
- Custom sorting does not work in bound mode.
- The
SortOrder
property is ignored when you handle theCustomSort
event.
Example
This example demonstrates how to handle the CustomSort
event to sort the checked items first and then the rest of the items.
using DevExpress.XtraEditors.Controls;
private void checkedListBoxControl1_CustomSort(object sender, CheckedListBoxCustomSortEventArgs e) {
if(e.Item1.CheckState == e.Item2.CheckState)
e.Result = ((string)e.Value1).CompareTo((string)e.Value2);
else
e.Result = e.Item1.CheckState == CheckState.Checked ? -1 : 1;
}
private void checkedListBoxControl1_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e) {
checkedListBoxControl1.Sort();
}
private void Form1_Load(object sender, EventArgs e) {
checkedListBoxControl1.Items.AddRange(new CheckedListBoxItem[] {
new CheckedListBoxItem(){ Value = "Bart Arnaz" },
new CheckedListBoxItem(){ Value = "Leah Simpson" },
new CheckedListBoxItem(){ Value = "Arnie Schwartz" },
new CheckedListBoxItem(){ Value = "Billy Zimmer" },
new CheckedListBoxItem(){ Value = "Samantha Piper" },
new CheckedListBoxItem(){ Value = "Maggie Boxter" },
new CheckedListBoxItem(){ Value = "Brad Farkus" },
});
checkedListBoxControl1.CheckOnClick = true;
}