public UserPositionsVM(UserVM user, AccessType access) : base(access) { UnitOfWork = new SoheilEdmContext(); CurrentUser = user; UserDataService = new UserDataService(UnitOfWork); PositionDataService = new PositionDataService(UnitOfWork); AccessRuleDataService = new AccessRuleDataService(UnitOfWork); UserDataService.PositionAdded += OnPositionAdded; UserDataService.PositionRemoved += OnPositionRemoved; var selectedVms = new ObservableCollection<UserPositionVM>(); foreach (var userPosition in UserDataService.GetPositions(user.Id)) { selectedVms.Add(new UserPositionVM(userPosition, Access, RelationDirection.Straight)); } SelectedItems = new ListCollectionView(selectedVms); var allVms = new ObservableCollection<PositionVM>(); foreach (var position in PositionDataService.GetActives(SoheilEntityType.Users, CurrentUser.Id)) { allVms.Add(new PositionVM(position, Access, PositionDataService)); } AllItems = new ListCollectionView(allVms); //AllItems = new ListCollectionView(PositionDataService.GetActives()); IncludeCommand = new Command(Include, CanInclude); ExcludeCommand = new Command(Exclude, CanExclude); }