FrameworkElement FillLinkedNode(XmlLinkedNode linkedNode) {
            StackPanel commonPanel = new StackPanel();
            commonPanel.Orientation = Orientation.Vertical;

            if (linkedNode.Value != null) {
                commonPanel.Children.Add(FillSimpleValue(linkedNode));
            } else {
                Expander childExpander = new Expander();
                childExpander.ExpandDirection = ExpandDirection.Down;
                childExpander.Header = linkedNode.Name;
				
                StackPanel childPanel = new StackPanel();
                childPanel.Orientation = Orientation.Vertical;

                linkedNode.ForEach(lnode => {
                    var res = lnode as System.Xml.XmlLinkedNode;
                    childPanel.Children.Add(FillLinkedNode(res));
                });
                if (childPanel.Children.Count == 1)
                    commonPanel.Children.Add(childPanel);
                else {
                    childPanel.Margin = new Thickness(20, 0, 0, 0);
                    childExpander.Content = childPanel;
                    commonPanel.Children.Add(childExpander);
                }
            }
            return commonPanel;
        }