Unplanned
Last Updated: 30 Mar 2016 13:22 by ADMIN
To reproduce:
  radTreeView1.Filter = "new";
            radTreeView1.Nodes.Add("new Node");
            for (int i = 0; i < 1000; i++)
            {
                radTreeView1.Nodes.Add(new RadTreeNode("test"));
            }

Workaround:
            radTreeView1.TreeViewElement.Update(RadTreeViewElement.UpdateActions.Reset);
Completed
Last Updated: 17 Oct 2014 08:48 by ADMIN
ADD. RadTreeView - add support for binding the checkboxes of the nodes to a field in the data
Completed
Last Updated: 08 Mar 2016 06:52 by ADMIN
To reproduce:
- Bind to object-relational data
- Add node via the context menu.
- The DataBoundItem in the NodeAdding and NodeAdded events is null.

Workaround:
- Add the node in the code behind:
private void RadTreeView1_NodeAdding(object sender, RadTreeViewCancelEventArgs e)
{
    e.Cancel = true;
    RadTreeNode node = radTreeView1.SelectedNode;
    if (node.Level == 0)
    {
        data.Add(new MyParentClass() { Text = "test" });
    }

}
Completed
Last Updated: 16 Apr 2018 11:57 by Dimitar
Completed
Last Updated: 25 Jun 2018 10:07 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 2
Category: TreeView
Type: Feature Request
2
Workaround:

        class CustomTreeView : RadTreeView
        {
            //Replace the default element with the custom one
            protected override RadTreeViewElement CreateTreeViewElement()
            {
                return new CustomTreeViewElement();
            }

            //Enable theming for the control
            public override string ThemeClassName
            {
                get
                {
                    return typeof(RadTreeView).FullName;
                }
            }
        }

        class CustomTreeViewElement : RadTreeViewElement
        {
            //Enable themeing for the element
            protected override Type ThemeEffectiveType
            {
                get
                {
                    return typeof(RadTreeViewElement);
                }
            }

            protected override bool ProcessContextMenu(Point location)
            {
                RadTreeNode node = this.GetNodeAt(location);
                if (node == null)
                {
                    RadContextMenu menu = new RadContextMenu();
                    RadMenuItem item = new RadMenuItem();
                    item.Text = "Add a root node";
                    menu.Items.Add(item);
                    item.Click += item_Click;
                    TreeViewContextMenuOpeningEventArgs args = new TreeViewContextMenuOpeningEventArgs(node, menu);
                    OnContextMenuOpening(args);

                    if (!args.Cancel)
                    {
                        menu.Show(this.ElementTree.Control, location);
                        return true;
                    }
                }
                return base.ProcessContextMenu(location);
            }

            private void item_Click(object sender, EventArgs e)
            {
                this.Nodes.Add(new RadTreeNode("New root"));
            }
        }
Completed
Last Updated: 02 Aug 2018 10:08 by Dimitar
Scenario: Populate RadTreeView with data coming from an XML: https://docs.telerik.com/devtools/winforms/treeview/data-binding/binding-to-xml-data The XML file stores a boolean value "IsActive" which will determine the check state of the node. Then, specify the RadTreeView. CheckMember property as well

            string fileName = @"TempFile.xml";
            DataSet tocDataSet = new DataSet("Toc");
            tocDataSet.ReadXml(fileName);
            this.radTreeView1.DataMember = "FlatNode";
            this.radTreeView1.DisplayMember = "Title";
            this.radTreeView1.ChildMember = "Id";
            this.radTreeView1.ParentMember = "ParentId";
            this.radTreeView1.CheckedMember = "IsActive";
            this.radTreeView1.DataSource = tocDataSet;

When you try to check/uncheck a node, an exception occurs indicating the inability to convert the string value "On" to ToggleState. Currently RadTreeView supports only bool, bool? to ToggleState and vice versa. The TypeConverter should be exposed so the developer can change it and implement the custom conversion.

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfFlatNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FlatNode>
    <Title>New Name</Title>
    <IsActive>false</IsActive>
    <ParentId>0</ParentId>
    <Id>1</Id>
  </FlatNode>
  <FlatNode>
    <Title>1st Node</Title>
    <IsActive>false</IsActive>
    <ParentId>1</ParentId>
    <Id>2</Id>
  </FlatNode>
  <FlatNode>
    <Title>1.1</Title>
    <IsActive>true</IsActive>
    <ParentId>2</ParentId>
    <Id>3</Id>
  </FlatNode>
  <FlatNode>
    <Title>1.2</Title>
    <IsActive>false</IsActive>
    <ParentId>2</ParentId>
    <Id>4</Id>
  </FlatNode>
  <FlatNode>
    <Title>1.3</Title>
    <IsActive>false</IsActive>
    <ParentId>2</ParentId>
    <Id>5</Id>
  </FlatNode>
  <FlatNode>
    <Title>2.0</Title>
    <IsActive>true</IsActive>
    <ParentId>1</ParentId>
    <Id>6</Id>
  </FlatNode>
  <FlatNode>
    <Title>2.1</Title>
    <IsActive>true</IsActive>
    <ParentId>6</ParentId>
    <Id>7</Id>
  </FlatNode>
  <FlatNode>
    <Title>2.2</Title>
    <IsActive>true</IsActive>
    <ParentId>6</ParentId>
    <Id>8</Id>
  </FlatNode>
  <FlatNode>
    <Title>2.3</Title>
    <IsActive>true</IsActive>
    <ParentId>6</ParentId>
    <Id>9</Id>
  </FlatNode>
  <FlatNode>
    <Title>3.0</Title>
    <IsActive>true</IsActive>
    <ParentId>1</ParentId>
    <Id>10</Id>
  </FlatNode>
  <FlatNode>
    <Title>4.0</Title>
    <IsActive>false</IsActive>
    <ParentId>1</ParentId>
    <Id>11</Id>
  </FlatNode>
  <FlatNode>
    <Title>5.0</Title>
    <IsActive>true</IsActive>
    <ParentId>1</ParentId>
    <Id>12</Id>
  </FlatNode>
  <FlatNode>
    <Title>3.1</Title>
    <IsActive>false</IsActive>
    <ParentId>10</ParentId>
    <Id>13</Id>
  </FlatNode>
  <FlatNode>
    <Title>New Item</Title>
    <IsActive>true</IsActive>
    <ParentId>8</ParentId>
    <Id>15</Id>
  </FlatNode>
  <FlatNode>
    <Title>New Item</Title>
    <IsActive>true</IsActive>
    <ParentId>8</ParentId>
    <Id>16</Id>
  </FlatNode>
</ArrayOfFlatNode>

Completed
Last Updated: 27 Sep 2018 09:23 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 2
Category: TreeView
Type: Bug Report
2
To reproduce: please run the attached sample project and follow the steps in the attached sample gif file.

Workaround: instead of filtering the nodes, you can manipulate the RadTreeNode.Visible property considering the filter criteria and whether the node contains a child that matches the filter. 
        public RadForm1()
        {
            InitializeComponent();

            this.radTreeView1.ShowLines = true; 
        }

        private void FilterNode(RadTreeNode node)
        {
            bool atLeastOneChildMatches = false;
            ChildNodeContains(this.radTextBox1.Text.ToLower(), node.Nodes, ref atLeastOneChildMatches);
            if (node.Text.ToLower().Contains(this.radTextBox1.Text.ToLower()) || atLeastOneChildMatches)
            {
                node.Visible = true;
            }
            else
            {
                node.Visible = false;
            }
        }

        private void ChildNodeContains(string filterCritria, RadTreeNodeCollection nodes, ref bool atLeastOneChildMatches)
        {
            foreach (RadTreeNode node in nodes)
            {
                if (node.Text.ToLower().Contains(filterCritria))
                {
                    atLeastOneChildMatches = true;
                    return;
                }
                if (atLeastOneChildMatches == false && node.Nodes.Count > 0)
                {
                    ChildNodeContains(filterCritria, node.Nodes, ref atLeastOneChildMatches);
                }
            }
        }

        private void radTextBox1_TextChanged(object sender, EventArgs e)
        {
            PerformFilter(this.radTreeView1.Nodes);
        }

        private void PerformFilter(RadTreeNodeCollection nodes)
        {
            foreach (RadTreeNode node in nodes)
            {
                FilterNode(node);
                if (node.Nodes.Count > 0)
                {
                    PerformFilter(node.Nodes);
                }
            }
        }
Completed
Last Updated: 27 Sep 2018 09:55 by Dimitar
To reproduce:

        public RadForm1()
        {
            InitializeComponent();

            BindingList<Item> items = new BindingList<Item>();
            items.Add(new Item(0,"Root", CheckState.Checked,-1));
            for (int i = 1; i < 5; i++)
            {
                items.Add(new Item(i, "Node" + i, CheckState.Checked,0));
            }
          
            this.radTreeView1.CheckBoxes = true;
            this.radTreeView1.DisplayMember = "Name";
            this.radTreeView1.ChildMember = "Id";
            this.radTreeView1.ParentMember = "ParentId";
            this.radTreeView1.CheckedMember = "IsActive";
            this.radTreeView1.AutoCheckChildNodes = true;
            this.radTreeView1.TriStateMode = true;
            this.radTreeView1.DataSource = items;
            this.radTreeView1.ExpandAll();
        }

        public class Item
        {
            public int Id { get; set; }

            public string Name { get; set; }

            public CheckState IsActive { get; set; }

            public int ParentId { get; set; }

            public Item(int id, string name, CheckState isActive, int parentId)
            {
                this.Id = id;
                this.Name = name;
                this.IsActive = isActive;
                this.ParentId = parentId;
            }
        }

Workaround: implement a TypeConverter that can handle converting from/to System.Windows.Forms.CheckState. A sample implementation for creating a custom TypeConverter is demonstrated in the following help article: https://docs.telerik.com/devtools/winforms/treeview/data-binding/togglestateconverter
Completed
Last Updated: 28 Aug 2019 11:36 by ADMIN
Release R3 2019
Created by: Kun
Comments: 1
Category: TreeView
Type: Bug Report
2

Hello,

I use radbreadcrumb as a group path explorer in my software. 

I associate it with a treeview. Please see the attache photos.

When I select a treeviewitem which has too much parent levels, the radbreadcrumb can not display the path completely.

I've tried autoscrollmargin and autoscrollminsize. No luck. Because my radbreadcrumb is in a splitcontainerpanel, the display size is changeable.

I expect a custom function can act like Windows Explorer (see the last attach photo). When there is no enough display space, only the last levels are shown.

 

PS. I've integrated the telerik solution from this post. And it works great. 

https://www.telerik.com/forums/getting-breadcrumb-to-act-like-windows-explorer-breadcrumb

 

Thank you by advance.

Kun

 

Declined
Last Updated: 27 Aug 2021 09:40 by ADMIN

Please run the attached sample project and follow the steps in the attached gif file. You will notice that the nodes are displayed multiple times.

Workaround: it seems that if the BeginUpdate/EndUpdate methods are not used in the PerformNodeMove methods, the issue is not reproducible

Completed
Last Updated: 10 Dec 2021 16:18 by ADMIN
Release R1 2022 (LIB 2021.3.1213)

Please refer to the following code snippet: 

        Dim root As New RadTreeNode()
        root.Expanded = True
        root.Text = "Root"
        root.Name = "Root"
        Me.RadTreeView1.Nodes.Add(root)
        Dim telerikTreeNode = New RadTreeNode With
        {
            .Expanded = True,
            .Name = "Child1",
            .Text = "Child1",
            .Tag = "test",
            .Font = New Font("Arial", 12.0F, FontStyle.Regular)
        }

        Me.RadTreeView1.Nodes("Root").Nodes.Add(telerikTreeNode)
        For index = 2 To 5
            Dim child As New RadTreeNode()
            child.Text = "Child" & index
            Me.RadTreeView1.Nodes("Root").Nodes.Add(child)
        Next

Completed
Last Updated: 05 Jun 2014 07:07 by ADMIN
ADMIN
Created by: Julian Benkov
Comments: 0
Category: TreeView
Type: Bug Report
1
Applied Font Styles for every Node not loaded correctly - all have a defaul value
Completed
Last Updated: 15 Feb 2021 10:35 by ADMIN
Release R1 2021 SP2
If you have a node with a very long text that requires horizontal scrollbar and at the same time you have a many nodes which requires a vertical scrollbar in some border cases the long text of the node is cut off (with ellipsis).
Completed
Last Updated: 05 Jun 2014 07:08 by ADMIN
When you set a new localization provider to RadTreeView, the strings of the nodes' context menu are not changed
Completed
Last Updated: 05 Jun 2014 07:08 by ADMIN
ADMIN
Created by: Nikolay
Comments: 0
Category: TreeView
Type: Bug Report
1
RadTreeView should be able to bind to subproperties.
Completed
Last Updated: 05 Jun 2014 07:08 by ADMIN
1. Set the AllowArbitraryItemHeight property of a RadTreeView to true
2. Open the RadTreeView Property Builder for that RadTreeView
3. Add an item to the root
4. Click on the item
5. Click on advanced
6. Set the ItemHeight to a custom value (e.g. 40)
7. Click apply
8. Reopen the Property Builder - you will notice that the ItemHeight value is reset.
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
If you perform radTreeView.Nodes.Clear method and then load new nodes by using the LoadXML method, the drag and drop behavior is corrupted.
Completed
Last Updated: 05 Jun 2014 07:08 by Svetlin
Adding or removing node through BindingList API collapse all nodes in self-referencing hierarchy in RadTreeView.
Completed
Last Updated: 19 May 2012 06:39 by Svetlin
1. Set CheckBoxes property of RadTreeView to true.
2. Set TriStateMode property of RadTreeView to true.
3. Cancel the node checked state property of a node in the NodeCheckedChanging event
4. The parent node will not be in intermediate checked state.
Completed
Last Updated: 09 Apr 2012 04:40 by Svetlin
Hide the AutoScroll property of RadTreeView in design time