Ejemplo n.º 1
0
        //...

        protected override void Subscribe()
        {
            if (treeView != null)
            {
                if (TreeViewExtensions.GetMode(treeView) == TreeViewModes.Grid)
                {
                    TreeViewExtensions.GetColumns(treeView)?.ForEach(i => i.VisibilityChanged += OnColumnVisibilityChanged);
                }
            }
        }
Ejemplo n.º 2
0
        protected override ColumnDefinition OnDefinitionCreated(ContentPresenter child, int index)
        {
            var result = base.OnDefinitionCreated(child, index);

            switch (TreeViewExtensions.GetMode(treeView))
            {
            case TreeViewModes.Default:
                result.Width = new(1, GridUnitType.Star);
                break;

            case TreeViewModes.Grid:
                Bind(TreeViewExtensions.GetColumns(treeView)[index], result);
                break;
            }
            return(result);
        }
Ejemplo n.º 3
0
 protected override void OnItemsSourceChanged(OldNew <IEnumerable> input)
 {
     base.OnItemsSourceChanged(input);
     if (TreeViewExtensions.GetMode(treeView) == TreeViewModes.Grid)
     {
         var columns = TreeViewExtensions.GetColumns(treeView);
         if (columns?.Count > 0)
         {
             columns.ForEach(i =>
             {
                 if (!DependencyObjectExtensions.GetIsVisible(i))
                 {
                     Hide(i);
                 }
             });
         }
     }
 }
Ejemplo n.º 4
0
        void Load()
        {
            if (treeView is not null && treeViewItem is not null)
            {
                treeViewItem.Visibility = Visibility.Collapsed;

                ObjectCollection result = new();
                switch (TreeViewExtensions.GetMode(treeView))
                {
                case TreeViewModes.Default:
                    result.Add(new ContentPresenter()
                    {
                        Content
                            = treeViewItem.Header,
                        ContentStringFormat
                            = treeViewItem.HeaderStringFormat,
                        ContentTemplate
                            = treeViewItem.HeaderTemplate,
                        ContentTemplateSelector
                            = treeViewItem.HeaderTemplateSelector,
                    });
                    break;

                case TreeViewModes.Grid:
                    var columns = TreeViewExtensions.GetColumns(treeView);
                    if (columns?.Count > 0)
                    {
                        columns.For(0, columns.Count, (a, b) => result.Add(GetCell(a[b], treeViewItem)));
                        break;
                    }
                    goto case TreeViewModes.Default;
                }
                ItemsSource = result;

                treeViewItem.Visibility = Visibility.Visible;
            }
        }