How can I bind a instance of a custom class to a WPF TreeListView without bugs?
- by user327104
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.