[英]treeview Multibinding in wpf
我想将树视图绑定到类似这样的类:
public class Folder : Base_FileFolder
{
public Folder()
{
Folders = new ObservableCollection<Folder>();
Files = new ObservableCollection<File>();
}
public ObservableCollection<Folder> Folders { get; set; }
public ObservableCollection<File> Files { get; set; }
}
其他类是:
public class File : Base_FileFolder
{
}
public class Base_FileFolder : DependencyObject
{
public string Name
{
get { return (string)GetValue(NameProperty); }
set { SetValue(NameProperty, value); }
}
public static readonly DependencyProperty NameProperty = DependencyProperty.Register("Name", typeof(string), typeof(Base_FileFolder), new UIPropertyMetadata(""));
}
如何创建显示“文件和文件夹”集合的树视图
我想用这样的东西:
<HierarchicalDataTemplate
DataType="{x:Type model:Folder}"
ItemsSource="{Binding Childs}">
<DockPanel>
<Label Content="{Binding Name}"/> </DockPanel>
</HierarchicalDataTemplate>
所以我得到像这样的Somethign:
根文件夹
|
|-File
|-File
|-Folder
|-File
|-File
|-Folder
|-File
考虑到你的星座,这很容易。
第一:调整你的课程。 文件夹类中的文件和文件夹不需要两个单独的列表。 只需在Base_FileFolder类(好的OOP)中使用一个IList<Base_FileFolder>
并将其命名为Children!
然后你只需要两个步骤:
两个HierarchicalDataTemplates
<HierarchicalDataTemplate DataType="{x:Type FolderNode}" ItemsSource="{Binding Path=Children}"> <Grid> <TextBlock Text="{Binding FolderName}" /> </Grid> </HierarchicalDataTemplate> <HierarchicalDataTemplate DataType="{x:Type FileNode}" ItemsSource="{Binding Path=Children}"> <Grid> <TextBlock Text="{Binding FileName}" /> </Grid> </HierarchicalDataTemplate>
还有像这样的TreeView
<TreeView Name="TreeViewFileTree" ItemsSource="{rootFolder.Children}" />
而已。 WPF的优势在于其简洁性。
你需要使用你需要3件事:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.