211
Chương 6: Windows Form
Hình 6.5 ComboBox có tính năng auto-complete
10.
10.
S p x p
ắ ế
S p x p
ắ ế
ListView
ListView
theo c t b t kỳ
ộ ấ
theo c t b t kỳ
ộ ấ
Bạn cần sắp xếp một
ListView
, nhưng phương thức nội tại
ListView.Sort
chỉ sắp
xếp căn cứ trên cột đầu tiên.
Tạo một hiện thực cho giao diện
System.Collections.IComparer
để có thể sắp xếp
các đối tượng
ListViewItem
(kiểu
IComparer
có thể sắp xếp dựa trên bất kỳ tiêu
chuẩn nào bạn muốn). Thiết lập thuộc tính
ListView.ListViewItemSorter
với một
đối tượng của kiểu
IComparer
trước khi gọi phương thức
ListView.Sort
.
ListView
cung cấp phương thức
Sort
để sắp các item theo thứ tự alphabet dựa trên phần text
trong cột đầu tiên. Nếu muốn sắp xếp dựa trên các giá trị cột khác hoặc sắp thứ tự các item
theo bất kỳ cách nào khác, bạn cần tạo một hiện thực tùy biến của giao diện
IComparer
.
Giao diện
IComparer
định nghĩa một phương thức có tên là
Compare
, phương thức này nhận
vào hai đối tượng và xác định đối tượng nào sẽ được sắp trước. Lớp tùy biến
ListViewItemComparer
dưới đây hiện thực giao diện
IComparer
và cấp thêm hai thuộc tính:
Column
và
Numeric
. Trong đó,
Column
cho biết cột nào sẽ được sử dụng để sắp xếp; và
Numeric
là một cờ
Boolean
, được thiết lập là
true
nếu muốn thực hiện việc so sánh theo thứ tự số thay
vì so sánh theo thứ tự alphabet.
using System;
using System.Collections;
using System.Windows.Forms;
public class ListViewItemComparer : IComparer {
private int column;
private bool numeric = false;
public int Column {
get {return column;}
set {column = value;}
}
public bool Numeric {
get {return numeric;}
set {numeric = value;}
}