WPF - 创建Treeview

时间:2011-04-04 11:32:35

标签: wpf treeview

我有可以表示层次结构的类型字段列表:List MyFields

public class Field
{
    public Field(string name, string value)
    {
        this.Name = name;
        this.Value = value;
    }

    public string Name { get; set; }
    public string Value { get; set; }
    public IList<Field> SubFields { get; set; }
}

如何将MyField绑定到TreeView?

编辑: 我忘记了,我想要例如。单击该项目时,在消息框中显示该值。

2 个答案:

答案 0 :(得分:2)

将TreeViews ItemsSource设置为要绑定的属性。

答案 1 :(得分:0)

您可以创建一个HierarchicalDataTemplate,它应放在TreeView的资源中或更高级别,请务必将DataType设置为您的类以使其适用。

例如:

<HierarchicalDataTemplate DataType="{x:Type data:Field}"
                          ItemsSource="{Binding SubFields}">
    <ContentControl MouseDoubleClick="TreeViewItem_MouseDoubleClick">
        <TextBlock Text="{Binding Name}"/>
    </ContentControl>
</HierarchicalDataTemplate>
private void TreeViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    Field field = (sender as FrameworkElement).DataContext as Field;
    MessageBox.Show(field.Value.ToString());
}

您还需要一个根元素列表,您可以将其绑定到TreeView本身的ItemsSource