I have a data structure as follows:
public class BranchLevel_1
{
    public string Name { get; set; }
    public ObservableCollection<BranchLevel_2> Children { get; set; }
    public BranchLevel_1(string name, List<BranchLevel_2> children)
    {
        this.Name = name;
        this.Children = new ObservableCollection<BranchLevel_2>(children);
    }
}
public class BranchLevel_2
{
    public ObservableCollection<BranchLevel_3> Contents { get; set; }
    public BranchLevel_2(List<string> contents)
    {
        this.Contents = new ObservableCollection<BranchLevel_3>();
        for (int i = 0; i < contents.Count; i++)
        {
            this.Contents.Add(new BranchLevel_3(contents[i]));
        }
    }
}
public class BranchLevel_3
{
    public string Content { get; set; }
    public BranchLevel_3(string text)
    {
        this.Content = text;
    }
}
Sorting data on the first level is easy and I can obtain in easily by:
Level1_Data.OrderBy(item => item.Name).ToList()
However, I am stuck with sorting on the second level. BranchLevel_2 class is just a container for items stored in BranchLevel_3 classes. Therefore I would like to sort Level2 with data stored in BranchLevel_2.Contents1.Content value. This syntax for me seems to be correct and I cannot locate the problem...
  Level1_Data.Select(item_Level1 => item_Level1.Children.OrderBy(item_Level2 => item_Level2.Contents[1].Content)).ToList();  
Any hints?
Here is the rusult (indicated in yellow is supposed to be sorted alphabetically)
