public override void SelectObject(object obj) { if (obj is TemplateTreeViewItemViewModel viewModel) { var query = from viewModelItem in this.GetViewModels(viewModel) join unresolvedItem in viewModel.Source.UnresolvedItems on viewModelItem.Target equals unresolvedItem select viewModelItem; this.itemList.Clear(); foreach (var item in query) { var itemViewModel = new TemplateUnresolvedItemListBoxItemViewModel(item); this.itemList.Add(itemViewModel); itemViewModel.PropertyChanged += ItemViewModel_PropertyChanged; } foreach (var item in itemList) { this.compositionService.SatisfyImportsOnce(item); } this.viewModel = viewModel; this.selectedItem = this.itemList.FirstOrDefault(); } else { this.itemList.Clear(); this.viewModel = null; } this.NotifyOfPropertyChange(nameof(this.DisplayName)); this.NotifyOfPropertyChange(nameof(this.IsVisible)); this.NotifyOfPropertyChange(nameof(this.Items)); }
public override void SelectObject(object obj) { if (this.viewModel != null) { this.viewModel.PropertyChanged -= ViewModel_PropertyChanged; } this.viewModel = obj as TemplateTreeViewItemViewModel; if (this.viewModel != null) { this.DisplayName = $"{Resources.Title_ColumnInfo}({this.GetHeader(this.viewModel)})"; this.tableInfo = this.GetTableInfo(this.viewModel); this.viewModel.PropertyChanged += ViewModel_PropertyChanged; } else { this.tableInfo = null; } if (this.tableInfo != null) { this.Columns = this.tableInfo.Value.Columns.Select(item => new TemplateColumnInfoItemViewModel(item)).ToArray(); } else { this.Columns = new TemplateColumnInfoItemViewModel[] { } }; this.NotifyOfPropertyChange(nameof(this.Columns)); this.NotifyOfPropertyChange(nameof(this.IsVisible)); this.NotifyOfPropertyChange(nameof(this.SelectedObject)); }
private IEnumerable <TreeViewItemViewModel> GetViewModels(TemplateTreeViewItemViewModel viewModel) { foreach (var item in EnumerableUtility.FamilyTree(viewModel.Browser.Items, i => i.Items)) { yield return(item); } }
public override void SelectObject(object obj) { if (obj is TemplateTreeViewItemViewModel viewModel) { var query = from viewModelItem in this.GetViewModels(viewModel) join unresolvedItem in viewModel.Source.UnresolvedItems on viewModelItem.Target equals unresolvedItem select viewModelItem; this.Items.Clear(); foreach (var item in query) { var itemViewModel = new TemplateUnresolvedItemListBoxItemViewModel(this.ServiceProvider, item); this.Items.Add(itemViewModel); itemViewModel.PropertyChanged += ItemViewModel_PropertyChanged; } this.viewModel = viewModel; } else { this.Items.Clear(); this.viewModel = null; } this.NotifyOfPropertyChange(nameof(this.DisplayName)); this.NotifyOfPropertyChange(nameof(this.IsVisible)); this.NotifyOfPropertyChange(nameof(this.Items)); }
protected override TableInfo?GetTableInfo(TemplateTreeViewItemViewModel item) { if (item.DiffState == DiffState.Inserted) { return(null); } return(item.Source1.TableInfo); }
public void View(TemplateTreeViewItemViewModel viewModel) { var targetModel = viewModel.Parent is TemplateTreeViewItemViewModel parent ? parent : viewModel; var document = this.Items.OfType <TemplateDocumentViewModel>().FirstOrDefault(item => item.Source == targetModel.Source); if (document == null) { document = new TemplateDocumentViewModel(targetModel); this.Items.Add(document); } document.SelectedName = $"{viewModel}"; this.ActivateItem(document); }
public TemplateDocumentViewModel(TemplateTreeViewItemViewModel viewModel) : base(viewModel) { this.viewModel = viewModel; this.viewModel.PropertyChanged += ViewModel_PropertyChanged; this.itemList.Add(new TemplateDocumentItemViewModel(viewModel)); foreach (var item in viewModel.Items.OfType <TemplateTreeViewItemViewModel>()) { this.itemList.Add(new TemplateDocumentItemViewModel(item)); } foreach (var item in this.itemList) { item.PropertyChanged += DocumentItem_PropertyChanged; } this.undoService.Changed += UndoService_Changed; this.resolveCommand = new DelegateCommand((p) => this.Resolve(), (p) => this.CanResolve); this.SelectedItem = this.itemList.First(); this.DisplayName = viewModel.DisplayName; }
protected override CremaTemplate GetTemplate(TemplateTreeViewItemViewModel item) { return(item.Source1); }
protected override string GetHeader(TemplateTreeViewItemViewModel item) { return(item.Header1); }
protected abstract string GetHeader(TemplateTreeViewItemViewModel item);
protected abstract TableInfo?GetTableInfo(TemplateTreeViewItemViewModel item);
public TemplateDocumentItemViewModel(TemplateTreeViewItemViewModel viewModel) { this.viewModel = viewModel; }
protected abstract CremaTemplate GetTemplate(TemplateTreeViewItemViewModel item);
public override void SelectObject(object obj) { this.Detach(); this.viewModel = obj as TemplateTreeViewItemViewModel; this.Attach(); }