嗨,我在视图中的 ListBox 控件上绑定了来自 Caliburn Micro 的集合。就这个。
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 中项目的值时,我想有一种方法如何通知集合视图有关此更改。因为我需要将项目移动到正确/好组。
例如
Friend[0].TextStatus = "Ofline" -> is in offline group
我在网上改变价值;
Friend[0].TextStatus="Online" -> move in online group
在这里我想通知集合视图(_currentView)关于朋友集合的变化。