Extended Elements of the TreeView Tree

I am trying to iterate through a TreeView, expanding all the nodes, but when it starts, it fires an InvalidCastException;

Cannot pass an object of type "System.Data.DataRowView" to enter "System.Windows.Controls.TreeViewItem".

My code

foreach (TreeViewItem treeitem in thetreeView.Items)
{
   treeitem.IsExpanded = true;
}

Any ideas? I want to start this with a button.

+3
source share
3 answers

just add this style

<TreeView.ItemContainerStyle>
    <Style TargetType="TreeViewItem"> 
        <Setter Property="IsExpanded" Value="True" /> 
    </Style> 
</TreeView.ItemContainerStyle>

for the code, please follow this link, maybe this will help u

http://bea.stollnitz.com/blog/?p=55

+13
source

"Hackish" . , ( Kishore Kumar)

- " " " ".

:

    private void btnCollapseAll_Click(object sender, RoutedEventArgs e)
    {
        foreach (var item in treeView.Items)
        {
            DependencyObject dObject = treeView.ItemContainerGenerator.ContainerFromItem(item);
            CollapseTreeviewItems(((TreeViewItem)dObject));
        }
    }

    private void btnExpandAll_Click(object sender, RoutedEventArgs e)
    {
        foreach (var item in treeView.Items)
        {
            DependencyObject dObject = treeView.ItemContainerGenerator.ContainerFromItem(item);
            ((TreeViewItem)dObject).ExpandSubtree();
        }
    }

    private void CollapseTreeviewItems(TreeViewItem Item)
    {
        Item.IsExpanded = false;

        foreach (var item in Item.Items)
        {
            DependencyObject dObject = treeView.ItemContainerGenerator.ContainerFromItem(item);

            if (dObject != null)
            {
                ((TreeViewItem)dObject).IsExpanded = false;

                if (((TreeViewItem)dObject).HasItems)
                {
                    CollapseTreeviewItems(((TreeViewItem)dObject));
                }
            }
        }
    }

this

+4

The stunt bag has a demo called "TreeView Expand", which has a tree view with the extension of all and resetting all buttons (and a few more)

0
source

Source: https://habr.com/ru/post/1754372/


All Articles