/// <summary> /// Yes, please don't make dealing with a tree complicated or anything... /// </summary> /// <param name="item"></param> /// <returns></returns> private TreeViewItem GetTreeViewItem(IAnalysisViewModel item) { var partDataSources = _partAnalyses; if (partDataSources == null) { Log.Warn("Unable to get the selected tree view item: _partDataSources is not set!"); return(null); } ItemContainerGenerator containerGenerator = partDataSources.ItemContainerGenerator; return(GetTreeViewItem(containerGenerator, item)); }
private void OnSelectedItemChanged(IAnalysisViewModel selectedItem) { TreeViewItem treeViewItem = GetTreeViewItem(selectedItem); if (treeViewItem != null) { SelectItem(treeViewItem); } else { Dispatcher.BeginInvoke(new Action(() => { TreeViewItem item = GetTreeViewItem(selectedItem); if (item != null) { SelectItem(item); } })); } }
void UpdateModel(IAnalysisViewModel value) { if (viewModel != null) { viewModel.Project.Timeline.EventTypesTimeline.ViewModels.CollectionChanged -= HandleEventTypesCollectionChanged; viewModel.Project.FileSet.PropertyChanged -= HandleFileSetChanged;; } viewModel = value; ClearObjects(); if (viewModel != null) { viewModel.Project.Timeline.EventTypesTimeline.ViewModels.CollectionChanged += HandleEventTypesCollectionChanged; viewModel.Project.FileSet.PropertyChanged += HandleFileSetChanged; duration = viewModel.Project.FileSet.Duration; int i = 0; FillCanvas(ref i); if (widget != null) { widget.Height = Objects.Count * Sizes.TimelineCategoryHeight; } } }
public virtual void SetViewModel(object viewModel) { ViewModel = (IAnalysisViewModel)viewModel; }
private TreeViewItem GetTreeViewItem(ItemContainerGenerator containerGenerator, IAnalysisViewModel item) { var container = (TreeViewItem)containerGenerator.ContainerFromItem(item); if (container != null) { return(container); } foreach (object childItem in containerGenerator.Items) { var parent = containerGenerator.ContainerFromItem(childItem) as TreeViewItem; if (parent == null) { continue; } container = parent.ItemContainerGenerator.ContainerFromItem(item) as TreeViewItem; if (container != null) { return(container); } container = GetTreeViewItem(parent.ItemContainerGenerator, item); if (container != null) { return(container); } } return(null); }
private void PartAnalysesOnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> args) { SelectedItem = args.NewValue as IAnalysisViewModel; }