public PositionOrganizationChartsVM(PositionVM position, AccessType access) : base(access) { UnitOfWork = new SoheilEdmContext(); CurrentPosition = position; PositionDataService = new PositionDataService(UnitOfWork); PositionDataService.OrganizationChartAdded += OnOrganizationChartAdded; PositionDataService.OrganizationChartRemoved += OnOrganizationChartRemoved; OrganizationChartDataService = new OrganizationChartDataService(UnitOfWork); OrganizationChartPositionDataService = new OrganizationChartPositionDataService(UnitOfWork); var selectedVms = new ObservableCollection<OrganizationChartPositionVM>(); foreach (var positionOrganizationChart in PositionDataService.GetOrganizationCharts(position.Id)) { selectedVms.Add(new OrganizationChartPositionVM(positionOrganizationChart, Access, OrganizationChartPositionDataService)); } SelectedItems = new ListCollectionView(selectedVms); var allVms = new ObservableCollection<OrganizationChartVM>(); foreach (var organizationChart in OrganizationChartDataService.GetActives()) { allVms.Add(new OrganizationChartVM(organizationChart, Access, OrganizationChartDataService)); } AllItems = new ListCollectionView(allVms); IncludeCommand = new Command(Include, CanInclude); ExcludeCommand = new Command(Exclude, CanExclude); }