Beispiel #1
0
        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;
                }
            };
        }
Beispiel #2
0
        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;
                }
            };
        }