示例#1
0
        /// <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));
        }
示例#2
0
        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);
                    }
                }));
            }
        }
示例#3
0
 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;
         }
     }
 }
示例#4
0
 public virtual void SetViewModel(object viewModel)
 {
     ViewModel = (IAnalysisViewModel)viewModel;
 }
示例#5
0
        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);
        }
示例#6
0
 private void PartAnalysesOnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> args)
 {
     SelectedItem = args.NewValue as IAnalysisViewModel;
 }