2017-02-09 108 views
1

我有这个类WPF TreeView的多层次结构

public class Country 
{ 
    [Key] 
    public int CountryId { get; set; } 

    public string Name { get; set; } 

    public int? ParentId { get; set; } 

    [ForeignKey("ParentId")] 
    public Country Parent { get; set; } 

    public List<Supplier> Suppliers { get; set; } 

    public ObservableCollection<Country> SubCountries { get; set; } 
} 

想在多级层次结构中的TreeView控件查看集合

这里是XAML代码

<Window.Resources> 
     <HierarchicalDataTemplate x:Key="TreeViewTemp" DataType="TreeViewItem" ItemsSource="{Binding SubCountries}"> 
      <TextBlock Text="{Binding Name}"/> 
     </HierarchicalDataTemplate> 
    </Window.Resources> 


    <TreeView Name="TreeView_Countries" ItemTemplate="{StaticResource TreeViewTemp}" Grid.RowSpan="2" Margin="510,14,-510,-14"> 


</TreeView> 

主要国家完美的装载完美的层次结构,但问题是SubCountreis再次加载其SubCountries下.. 任何帮助!

+0

我有这个不久前。似乎大多数情况下都是同样的问题。 http://stackoverflow.com/questions/27928476/how-do-i-dynamically-make-user-controls-in-a-hierarchicaldatatemplate-editable-r/27929939#27929939 – Demarini

+0

澄清添加。国家得到正确物化吗? –

+0

@电子蝙蝠是的,它确实是 –

回答

0

好,我找到了解决办法..这其实很简单...

我不得不这样做,在过滤项目 源集合只caontain母国

TreeView_Countries.ItemsSource = collection.Where(x => x.ParentId == null);