Windows 양식 응용 프로그램의 필터링 목록 상자
-
07-07-2019 - |
문제
Windows 양식 응용 프로그램에서 ListBox의 내용을 필터링 할 수 있습니까?
내 Listbox의 데이터 소스는 다음에 많은 DTO를 포함하는 바인딩 소스입니다.
IList<DisplayDTO>
Listbox의 DisplayMember에 지정된 DTO 속성을 필터링하고 싶습니다.
필터링 할 텍스트는 별도의 텍스트 상자에 제공됩니다.
해결책
이것은 작동해야합니다 :
private void textBox_TextChanged(object sender, EventArgs e)
{
bindingSource.Filter = string.Format("[{0}] LIKE '%{1}%'",
listBox.DisplayMember,
textBox.Text.Replace("'", "''"));
}
편집 : 기본 데이터 소스 인 경우에만 작동합니다 (bindingSource.DataSource
) 구현 IBindingListView
. FCL에서만 DataView
클래스는이 인터페이스를 구현합니다.
상속을 통해 자신의 구현을 만들 수 있습니다 BindingList<T>
. 여기에 있습니다 기사 필터 기능을 추가하는 방법을 설명합니다. 다양한 구현을 찾을 수도 있습니다 SortableBindingList
구글에서.
제휴하지 않습니다 StackOverflow