How can I bind a instance of a custom class to a WPF TreeListView without bugs?

Posted by user327104 on Stack Overflow See other posts from Stack Overflow or by user327104
Published on 2010-05-05T16:04:30Z Indexed on 2010/05/05 16:08 UTC
Read the original article Hit count: 292

First, from : http://blogs.msdn.com/atc_avalon_team/archive/2006/03/01/541206.aspx I get a nice TreeListView.

I left the original classes (TreeListView, TreeListItemView, and LevelToIndentConverter) intact, the only code y have Added is on the XAML, here is it:

        <Style TargetType="{x:Type l:TreeListViewItem}">
                    ....
                        </ControlTemplate.Triggers>
                        <ControlTemplate.Resources>
                            <HierarchicalDataTemplate DataType="{x:Type local:FileInfo}" ItemsSource="{Binding Childs}">
                            </HierarchicalDataTemplate>
                        </ControlTemplate.Resources>
                    </ControlTemplate>
                    ...

here is my custom class

public class FileInfo
    {
        private List<FileInfo> childs;
        public FileInfo()
        {
            childs = new List<FileInfo>();
        }
        public bool IsExpanded
        {
            get;
            set;
        }
        public bool IsSelected
        {
            get;
            set;
        }
        public List<FileInfo> Childs
        {
            get {
                return childs;
            }
            set
            {

            }
        }
        public string FileName
        {
            get;
            set;
        }
        public string Size
        {
            get;
            set;
        }
    }

And before I use my custom class I remove all the items inside the treeListView1:

  <l:TreeListView>
    <l:TreeListView.Columns>
      <GridViewColumn Header="Name" CellTemplate="{StaticResource CellTemplate_Name}" />
      <GridViewColumn Header="IsAbstract" DisplayMemberBinding="{Binding IsAbstract}" Width="60" />
      <GridViewColumn Header="Namespace" DisplayMemberBinding="{Binding Namespace}" />
    </l:TreeListView.Columns>
  </l:TreeListView>

So finaly I add this code to bind a Instance of my class to the TreeListView:

    private void Window_Loaded(object sender,RoutedEventArgs e)
    {
        FileInfo root = new FileInfo() { FileName = "mis hojos", Size="asdf" };
        root.Childs.Add(new FileInfo(){FileName="sub", Size="123456" });
        treeListView1.Items.Add(root);
        root.Childs[0].Childs.Add(new FileInfo() { FileName = "asdf" });
        root.Childs[0].IsExpanded = true;
    }

So the bug is that the button to expand the elementes dont appear and when a node is expanded by doble click the child nodes dont look like child nodes.

Please F1 F1 F1 F1 F1 F1 F1 F1.

© Stack Overflow or respective owner

Related posts about c#

Related posts about wpf