【发布时间】:2014-07-25 00:34:59
【问题描述】:
我有一个UsersVM(复数)和一个UserVM(单数)。我在UsersVM 中创建了一个ObservableCollection<UserVM>。我将ObservableCollection<UserVM> 绑定到Listview。当我在列表视图中编辑用户时,我希望 ObservableCollection 根据用户状态重新排序。这是一些代码:
用户虚拟机:
public ObservableCollection<UserVM> UserList{ get; set; }
public UsersVM(IUserService userService)
{
this._userService = userService;
var users= userService.GetUsers();
var userViewModels = users.Select(x => new UserVM
{
UserID= x.UserID,
StatusID = x.StatusID,
Status = x.Status,
});
this.UserList= new ObservableCollection<UserVM>(userViewModels);
this.UpdateUserStatus= new RelayCommand<object[]>((s) => UpdateStatus(s));
}
用户虚拟机:
public class UserVM: ViewModelBase
{
public UserVM()
{
}
public int UserID{ get; set; }
}
因此,如果我更改单个用户的状态,我希望 UserList 根据用户状态来使用。我已经读过ObservableCollection 可以重新排序的唯一方法是实现一些排序算法,但即使那样你也需要添加、删除或移动某些东西来改变它?我将其解读为:如果我想查看重新订购的ObservableCollection,那么我需要添加、删除或移动。我试过UserList.Move(1,2);,但没有奏效。我试过UserList.Add(TestUserObject);,但没有用。
【问题讨论】:
标签: wpf sorting observablecollection