WPF TreeView绑定到复杂模型

时间:2013-02-05 14:38:33

标签: wpf mvvm binding treeview

我开始学习WPF了。我选择建立简单的ItemStructureCreator 我也在使用MVVM模式 我实现了一些类,并遇到了将其正确绑定到TreeView的问题。

Here is my class diag

现在我希望我的StructureManagerView让TreeView控件与我的结构相关联 我试着像这样绑定它:

    <TreeView Name="tree" DataContext="{Binding MainItem}" Grid.Column="0" Background="Beige">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Item.Children}">
                <TextBlock Text="{Binding Item.Code}" HorizontalAlignment="Stretch"/>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate> 
    </TreeView>

或者像这样(我认为这是错误的,因为ItemsSource属性需要收集):

    <TreeView Name="tree" ItemsSource="{Binding MainItem}" Grid.Column="0" Background="Beige">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Item.Children}">
                <TextBlock Text="{Binding Item.Code}" HorizontalAlignment="Stretch"/>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate> 
    </TreeView>

您能否帮我正确设置Bindigs

问候,德米特里。

1 个答案:

答案 0 :(得分:2)

将我的评论转换为答案:

TreeView没有“主要项目”的概念。

您应该绑定TreeView本身的ItemsSource属性。

ItemsSource="{Binding MainItem}"

应替换为

ItemsSource="{Binding MainItems}"

其中MainItems是IEnumerable