public ProductReworksVM(ProductVM product, AccessType access) : base(access) { UnitOfWork = new SoheilEdmContext(); CurrentProduct = product; ProductDataService = new ProductDataService(UnitOfWork); ProductDataService.ReworkAdded += OnReworkAdded; ProductDataService.ReworkRemoved += OnReworkRemoved; ReworkDataService = new ReworkDataService(UnitOfWork); ProductReworkDataService = new ProductReworkDataService(UnitOfWork); var selectedVms = new ObservableCollection<ProductReworkVM>(); foreach (var productRework in ProductDataService.GetReworks(product.Id)) { selectedVms.Add(new ProductReworkVM(productRework, Access,ProductReworkDataService, RelationDirection.Straight)); } SelectedItems = new ListCollectionView(selectedVms); var allVms = new ObservableCollection<ReworkVM>(); foreach (var rework in ReworkDataService.GetActives(SoheilEntityType.Products, CurrentProduct.Id)) { allVms.Add(new ReworkVM(rework, Access, ReworkDataService)); } AllItems = new ListCollectionView(allVms); IncludeCommand = new Command(Include, CanInclude); ExcludeCommand = new Command(Exclude, CanExclude); }