繁体   English   中英

WPF绑定TreeView与视图有关

[英]WPF Bindings TreeView Issue with view

我只是试图将我的树形视图绑定到xaml中,但是由于某种原因,该列表似乎没有显示,所以我附上了代码。 任何帮助都会很棒。

非常感谢

class Item
{
    public string Header { get; set; }
    public List<string> TreeItems { get; set; }
    public List<Item> SubItems { get; set; }
}

这是视图模型

    public StoreLibraryViewModel()
    {
        this.DisplayName = "hierarchy Library";
        TreeItems = new ObservableCollection<Item>();

        string[] data = new string[]{
            "Warwick","Birmingham",
        };
        Item item = new Item()
        {
            Header = "Region",
            TreeItems = new List<string>(data)
        };

        TreeItems.Add(new Item()
        {
            Header = "Region 1",
            SubItems = new List<Item>(new Item[] { item }),
            TreeItems = new List<string>(data)
        });
        TreeItems.Add(new Item()
        {
            Header = "Region 2",
            SubItems = new List<Item>(new Item[] { item }),
            TreeItems = new List<string>(data)
        });

        TreeItems.Add(new Item()
        {
            Header = "Region 3",
            SubItems = new List<Item>(new Item[] { item }),
            TreeItems = new List<string>(data)
        });
    }
    ObservableCollection<Item> TreeItems { get; set; }

这是XAML

TreeView ItemsSource="{Binding TreeItems}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding SubItems}">
                <Expander Header="{Binding Header}">
                    <ItemsControl Margin="25,0,0,0" ItemsSource="{Binding TreeItems}" />
                </Expander>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
    </TreeView>

我似乎要显示的只是一个空的树视图,不胜感激。

非常感谢

您只需要在xaml代码中分配数据上下文,如下所示:

<Window ....
        xmlns:local="clr-namespace:myStoreLibraryViewModelNameSpace"
        ....
        />
     <Window.DataContext>
        <local:StoreLibraryViewModel />
     </Window.DataContext>
   ....

其中myStoreLibraryViewModelNameSpace是在StoreLibraryViewModel所在的命名空间

您应该添加:

DataContext = new StoreLibraryViewModel();

然后,您需要使ObservableCollection TreeItems { 组; } 上市

public ObservableCollection<Item> TreeItems { get; set; }

这是结果

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM