안녕하세요, 저는 ListBox 컨트롤에서 Caliburn Micro의 컬렉션을보기에 바인딩합니다. 여기 있습니다.알림 ICollectionView를 사용하여 BindableCollection의 항목을 업데이트하십시오.
public BindableCollection<UserInfo> Friends
{
get { return _friends; }
set
{
_friends = value;
NotifyOfPropertyChange(() => Friends);
}
}
ListBox 항목은 UserInfo 유형입니다.
안녕하세요. 목록 상자 항목을 정렬하고 그룹화합니다.이 용도로 CollectioView를 사용합니다.
ListBox를 초기화 할 때이 메서드로 항목을 정렬하고 그룹화합니다.
private ICollectionView _currentView;
//...
private void SortContactList()
{
_currentView = CollectionViewSource.GetDefaultView(Friends);
_currentView.GroupDescriptions.Add(new PropertyGroupDescription("TextStatus"));
_currentView.SortDescriptions.Add(new SortDescription("TextStatus", ListSortDirection.Ascending));
_currentView.SortDescriptions.Add(new SortDescription("Nick", ListSortDirection.Ascending));
}
TextStatus 및 Nick은 userInfo 클래스의 속성입니다.
바인더 블 컬렉션 친구의 값을 업데이트 할 때 친구에게이 변경 사항에 대한 컬렉션보기를 알리는 방법이 필요합니다. 오른쪽/좋은 그룹으로 이동 항목이 필요하기 때문에. 예를
내가 온라인에서 값을 변경Friend[0].TextStatus = "Ofline" -> is in offline group
에 대한
;
Friend[0].TextStatus="Online" -> move in online group
여기 그리고 Friends 컬렉션의 변경 사항에 대한 콜렉션 뷰 (_currentView)를 알려주고 싶습니다.
안녕하세요, 내가 사용하는이 솔루션에 대한 의견을 보내 주셔서 감사합니다,하지만 여기서 설명하는 문제가 발생합니다 : http://stackoverflow.com/questions/4986255/sort-and-group-listitems-in-a-wpf-listbox- 그룹 단위 축소 및 확장 –