public BlockTraineeListViewModel(BlockTraineeBussiness bussiness) { _bussiness = bussiness; _bussiness.LoadTraineesEvnet += trainees => { Trainees.Clear(); if (trainees != null) { trainees.ForEach(t => { Trainees.Add(new TraineeViewModel(t, false)); Trainees.Last().OperateTraineeEvent += OnOperateTrainee; }); } }; _bussiness.TraineeChangedEvent += (operation, trainee, newIndex) => { switch (operation) { case OperationType.Add: Trainees.Add(new TraineeViewModel(trainee, false)); Trainees.Last().OperateTraineeEvent += OnOperateTrainee; break; case OperationType.Update: Trainees.Where(t => t.TraineeID == trainee.TraineeIDForShown).First().TraineeName = trainee.TraineeName; break; case OperationType.Delete: Trainees.Remove(Trainees.Where(t => t.TraineeID == trainee.TraineeIDForShown).First()); break; } }; }
public RegularTraineeListViewModel(RegularTraineeBussiness bussiness) : base() { _bussiness = bussiness; _bussiness.LoadTraineesEvent += trainees => { Trainees.Clear(); if (trainees != null) { trainees.ForEach(t => { Trainees.Add(new TraineeViewModel(t, true)); Trainees.Last().OperateTraineeEvent += OnOperateTrainee; }); } }; _bussiness.TraineeChangedEvent += (operation, trainee, newIndex) => { switch (operation) { case OperationType.Add: Trainees.Add(new TraineeViewModel(trainee, true)); Trainees.Last().OperateTraineeEvent += OnOperateTrainee; break; case OperationType.Update: if (newIndex == -1) { //只是更新信息 Trainees.Where(t => t.TraineeID == trainee.TraineeIDForShown).First().TraineeName = trainee.TraineeName; } else { //删除或者恢复 Trainees.Remove(Trainees.Where(t => t.TraineeID == trainee.TraineeIDForShown).First()); Trainees.Insert(newIndex, new TraineeViewModel(trainee, true)); Trainees[newIndex].OperateTraineeEvent += OnOperateTrainee; } break; case OperationType.Delete: Trainees.Remove(Trainees.Where(t => t.TraineeID == trainee.TraineeIDForShown).First()); break; } }; }