2017-02-09 18 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

Clarifyが再度追加されました。国は正しくマテリアライズされますか? –

+0

@ E-Batはいそれは –

答えて

0

[OK]を、それは...実際には非常に簡単だった

私だけcaontain私はこれを持っていた親の国

TreeView_Countries.ItemsSource = collection.Where(x => x.ParentId == null); 
関連する問題