내가 인터넷에서 예정된 일부 이벤트는,이 이벤트가 ListView
내부에 삽입 얻을 응용 프로그램이 목록은 다음과 같이 GroupDescription
의 콘텐츠를 구성했다 : 나는 TextBox
을했습니다, 지금필터 UI의 ObservableCollection 항목?
<CollectionViewSource Source="{Binding Matches}" x:Key="GroupedItems">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="MatchNation" />
<PropertyGroupDescription PropertyName="MatchLeague" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
을 어디에 사용 할 수 있습니다 Matches
컬렉션 내의 특정 항목을 검색하려면, 내가 달성하려고하는 것은 주어진 search
문자열을 사용하여 컬렉션을 필터링하고 TextBox
에 사용자가 제공 한 문자열입니다.
linq
을 사용하는 기계는 컬렉션의 백업을 만들고 사용자 search
문자열에 맞지 않는 모든 항목을 제거하지만이 코드는 너무 무겁고 또한 너무주의해야합니다. 간단한 UI 필터를 구현하기위한 많은 코드.
xaml과 비슷한 것을 만들 수 있는지 궁금합니다. 그래서 본질적으로 xambl에서 TextBox
에 의해 제공되는 검색 문자열을 얻는 속성에 바인드했습니다. 값이 바뀌면 Matches
컬렉션이 검색된 텍스트로 필터링되어 xaml을 통해 필터링됩니다.
이것이 가능합니까? Matches
에서
예
항목 있음 :
- 안녕하세요
- 세계
TextBox
=> 안녕하세요의 사용자 검색 :
ListView
에는 Hello
만 표시됩니다.
.GetDefaultView를 사용하는 경우 ObservableCollection을 정적으로 선언해야합니다. 그 이유는 무엇입니까? – AgainMe
정적으로 설정할 필요는 없습니다.그것은 다음과 같아야합니다 : 'ObservableCollection _matches = new ObservableCollection (); var cvs = CollectoinViewSource.GetDefaultView (_matches); cvs.Filter = ...'GetDefaultView() 메서드는 정적이지만 정적이 아닌 인수를 전달할 수 있습니다. –
rmc00
좋아요, .Filter 예를 들어있는 것처럼 'FilterString'과 같은 속성을 전달해야합니다. – AgainMe