2010-01-05 8 views
1

(Cairngorm을 사용하고 있습니다.) 내 모델에있는 XMLListCollection을 항목으로 표시하는 콤보 박스가 있습니다. "보낸"속성이 false 인 항목 (XML) 만보고 싶습니다. item.sent == 'false'와 같습니다. 이 필터는이 특정 콤보 상자에만 적용되어야하며 XMLListCollection 소스에 바인딩 된 모든 항목이 아닙니다. 물론 원본이 바뀌면 필터를 업데이트하고 새로 고쳐야합니다.Flex 3 combobox : 필터 XMLListCollection 데이터 소스

어떻게하면됩니까? filterFunction을 사용하려고하는데 어떻게 작동하는지 이해하지 못합니다 ... thanks

답변

2

실제로 모든 데이터를 복사 할 필요는 없습니다. 실제로 다른 목록을보고 필터를 적용하는 또 다른 ListCollectionView을 만들 수 있습니다. xmlListCollection이 컬렉션 인 경우 그래서, 다음과 같은 코드를 시도 할 수 있습니다 : 당신이 기본 xmlListCollection 소스 또는 목록을 교환하지 않는

var listView:ListCollectionView = new ListCollectionView(xmlListCollection.list); 
listView.filterFunction = someFunction; 
listView.refresh(); 

listView, 당신의 컬렉션 항상 동기화해야합니다.

+0

사실 내 하루를 보냈습니다. 최근 프로젝트에서이 문제를 두 번이나 해결해 봤기 때문에 그 사실을 몰랐다는 것을 믿을 수 없습니다. +1 –