protected override void OnInitialized(EventArgs e) { base.OnInitialized(e); var culumnHeaderViewModels = new[] { new ColumnHeaderViewModel("Name"), new ColumnHeaderViewModel("Value"), new ColumnHeaderViewModel("Constant", CellBodyType.CheckBox) }; var samples = new[] { new TreeItem { Name = "Dummy1" }, new TreeItem { Name = "Dummy2" } }; var sampleItemFactory = new TreeItemFactory(); var sampleModelService = new ModelService(samples, sampleItemFactory); var columnPropertyInfos = new ColumnPropertyInfos <TreeItemViewModel>( nameof(TreeItemViewModel.Name), nameof(TreeItemViewModel.Value), nameof(TreeItemViewModel.IsConstant)); var sampleViewModelFactory = new TreeItemViewModelFactory(columnPropertyInfos); var sampleViewModels = samples.Select(sampleViewModelFactory.Create); var tableEditorViewModel = new TableEditorViewModel <TreeItem>( sampleViewModels, culumnHeaderViewModels, sampleModelService, sampleViewModelFactory, new RowHeaderContextMenuInfoService()); this.DataContext = new MainWindowViewModel(tableEditorViewModel); }
public EntityListViewModel(IEventAggregator eventAggregator, IEntityProvider entityProvider, TreeItemViewModelFactory treeItemViewModelFactory) { //assign event aggregator to local variable for later use EA = eventAggregator; EA.GetEvent <NewEntityRequestEvent>().Subscribe(NewEntityRequestEventExecute); EA.GetEvent <DataLoadSuccessEvent>().Subscribe(DataLoadSuccessEventExecute); EA.GetEvent <FilterRequestEvent>().Subscribe(FilterRequestEventExecute); EA.GetEvent <UIUpdateRequestEvent>().Subscribe(UIUpdateRequestExecute); TreeItemViewModelFactory = treeItemViewModelFactory; EP = entityProvider; TreeHeads = new ObservableCollection <OrganizationTreeItemViewModel> { //currently only uses the first head specified in the RTree, eventually plan to add multi head RTrees //RTrees currently support multi heading, TreeHeads does not TreeItemViewModelFactory.CreateOrganizationViewModel(null, EP.HeadEntities()[0]) }; RaisePropertyChanged(nameof(TreeHeads)); }