2017-02-09 3 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 загружается снова с помощью подкатегорий под ним. Любая помощь !!

+0

Я была эта некоторое время назад. Похоже, та же проблема по большей части. http://stackoverflow.com/questions/27928476/how-do-i-dynamically-make-user-controls-in-a-chierarchicaldatatemplate-editable-r/27929939#27929939 – Demarini

+0

Уточнение добавлено снова. Правильно ли материализована страна? –

+0

@ E-Bat да –

ответ

0

Ok Я нашел решение .. это было очень просто на самом деле ...

Все, что я должен был сделать фильтрацию элементов коллекции источник caontain только родительские страны

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