TreeView отображение разных элементов в открытом узле

Есть модель:

public class Menu_c : INotifyPropertyChanged
{
    private int kod;
    private string nazv;
    private double koef_cen;
    private double koef_ves;
    private Edinitci ed;
    public int Kod { get { return kod; } set { kod = value; } }
    public string Nazv { get { return nazv; } set { nazv = value; } }
    public double Koef_cen { get { return koef_cen; } set { koef_cen = value; } }
    public double Koef_ves { get { return koef_ves; } set { koef_ves = value; } }
    public Edinitci Ed { get { return ed; } set { ed = value; } }
    public ObservableCollection<Sostav_menu_c> sostav { get; set; }

    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}
public class Group
{
    private int kod;
    private string nazv;
    public int Kod { get { return kod; } set { kod = value; } }
    public string Nazv { get { return nazv; } set { nazv = value; } }

}
public class Tree
{
    private Group g_g;
    public ObservableCollection<Tree> c_g { get; set; }
    public ObservableCollection<Menu_c> menu { get; set; }
    public Group G_g { get { return g_g; } set { g_g = value; } }
}

В Tree храниться переменная G_g - группа-владелец. У неё есть список блюд (коллекция menu) и список дочерних групп (коллекция c_g с типом данных Tree).

Я хотела отобразить список, примерно как на следующей катинке:

введите сюда описание изображения

Но в моём случае происходит следующее отображение:

введите сюда описание изображения

Во втором случае отображаются только вложенные группы, а блюда отображаются только в конечных узлах.

Привязка к коллекции:

public static ObservableCollection<Tree> trees = new ObservableCollection<Tree>(); //Коллекция

Форма:

{
    public Menu()
    {
        InitializeComponent();
    }

    private void Page_Loaded(object sender, RoutedEventArgs e)
    {
        Util.Set_trees();
        LI.ItemsSource = Util.trees;
    }
}

TreeView:

        <TreeView x:Name="LI" Grid.Column="0">
            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding Path=c_g}">
                    <StackPanel>
                        <TextBlock Text="{Binding Path=G_g.Nazv}"></TextBlock>
                    </StackPanel>
                    <HierarchicalDataTemplate.ItemTemplate>
                        <HierarchicalDataTemplate ItemsSource="{Binding Path=menu}">
                            <StackPanel>
                                <TextBlock Text="{Binding Path=G_g.Nazv}"></TextBlock>
                                <Label Content="{Binding Path=Name}"></Label>
                            </StackPanel>
                        </HierarchicalDataTemplate>
                    </HierarchicalDataTemplate.ItemTemplate>
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>

Ответы (0 шт):