Back to Devexpress

BaseListBoxControl.Sort() Method

windowsforms-devexpress-dot-xtraeditors-dot-baselistboxcontrol-0b3ce0ca.md

latest3.8 KB
Original Source

BaseListBoxControl.Sort() Method

Raises the CustomSort event.

Namespace : DevExpress.XtraEditors

Assembly : DevExpress.XtraEditors.v25.2.dll

NuGet Package : DevExpress.Win.Navigation

Declaration

csharp
public void Sort()
vb
Public Sub Sort

Remarks

Handle the CustomSort event to sort list items in custom order. For optimization purposes, the editor itself does not raise the CustomSort event. Use the Sort method to raise the CustomSort event when needed.

Example

This example demonstrates how to handle the CustomSort event to sort the checked items first and then the rest of the items.

csharp
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;
}
vb
Imports DevExpress.XtraEditors.Controls

Private Sub checkedListBoxControl1_CustomSort(ByVal sender As Object, ByVal e As CheckedListBoxCustomSortEventArgs)
    If e.Item1.CheckState = e.Item2.CheckState Then
        e.Result = CStr(e.Value1).CompareTo(CStr(e.Value2))
    Else
        e.Result = If(e.Item1.CheckState = CheckState.Checked, -1, 1)
    End If
End Sub

Private Sub checkedListBoxControl1_ItemCheck(ByVal sender As Object, ByVal e As DevExpress.XtraEditors.Controls.ItemCheckEventArgs)
    checkedListBoxControl1.Sort()
End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
    checkedListBoxControl1.Items.AddRange(New CheckedListBoxItem() {
        New CheckedListBoxItem() With {.Value = "Bart Arnaz"},
        New CheckedListBoxItem() With {.Value = "Leah Simpson"},
        New CheckedListBoxItem() With {.Value = "Arnie Schwartz"},
        New CheckedListBoxItem() With {.Value = "Billy Zimmer"},
        New CheckedListBoxItem() With {.Value = "Samantha Piper"},
        New CheckedListBoxItem() With {.Value = "Maggie Boxter"},
        New CheckedListBoxItem() With {.Value = "Brad Farkus"}
    })

    checkedListBoxControl1.CheckOnClick = True
End Sub

See Also

ListBoxControl.CustomSort

BaseCheckedListBoxControl.CustomSort

ImageListBoxControl.CustomSort

BaseListBoxControl Class

BaseListBoxControl Members

DevExpress.XtraEditors Namespace