public void InitControl(NavMenuItem item)
        {
            if (item == null)
                return;

            if (Segments.Any())
            {
                Segments.Clear();
                stkRoot.Children.Clear();
            }

            var control = new NavigationControlSegment() { CurrentLevel = 0 };
            control.NavMenuClickEvent += OnNavMenuClick;
            var items = new ObservableCollection<NavMenuItem>();
            var menuItem = new NavMenuItem()
            {
                Title = "Вся компания",
                Id = item.Id
            };
            menuItem.Items.AddRange(item.Items);
            items.Add(menuItem);
            control.NavItems = items;
            control.Status = NavSegmentStatus.Current;
            stkRoot.Children.Add(control);

            if (!Segments.ContainsKey(control.CurrentLevel))
            {
                Segments.Add(control.CurrentLevel, control);

            }
            else
            {
                //
                //				if (control.NavItems.Any ()) {
                //					foreach (var segment in Segments) {
                //						if (segment.Key < control.CurrentLevel) {
                //							segment.Value.Status = NavSegmentStatus.Previous;
                //						}
                //					}
                //				}

                Segments[control.CurrentLevel] = control;
            }

            control.SelectFirstItem();
        }
        void OnNavMenuClick(object sender, NavMenuEventArgs e)
        {
            if (e == null)
                return;

            var ctrl = sender as NavigationControlSegment;
            if (ctrl == null)
                return;

            if (ctrl.NavItems.Any())
            {
                foreach (var segment in Segments)
                {
                    if (segment.Key < ctrl.CurrentLevel)
                    {
                        segment.Value.Status = NavSegmentStatus.Previous;
                    }
                }

                ctrl.Status = NavSegmentStatus.Current;

                if (ctrl.SelectedItem.Items.Any())
                {
                    if (!Segments.ContainsKey(e.CurrentLevel + 1))
                    {
                        var childControl = new NavigationControlSegment() { CurrentLevel = e.CurrentLevel + 1 };
                        childControl.NavItems = new ObservableCollection<NavMenuItem>(ctrl.SelectedItem.Items);
                        childControl.NavMenuClickEvent += OnNavMenuClick;
                        childControl.Status = NavSegmentStatus.NotSelected;
                        Segments.Add(e.CurrentLevel + 1, childControl);

                        stkRoot.Children.Add(childControl);
                    }
                    else
                    {
                        var existChldControl = Segments[e.CurrentLevel + 1];
                        existChldControl.NavMenuClickEvent -= OnNavMenuClick;
                        existChldControl.NavItems = new ObservableCollection<NavMenuItem>(ctrl.SelectedItem.Items);
                        existChldControl.Status = NavSegmentStatus.NotSelected;
                        existChldControl.NavMenuClickEvent += OnNavMenuClick;
                    }
                }
            }

            var handler = NeedRefreshMatrixEvent;
            if (handler != null)
            {
                StringBuilder title = new StringBuilder();
                StringBuilder id = new StringBuilder();

                foreach (var s in Segments)
                {

                    if (s.Value != null && s.Value.Status != NavSegmentStatus.None && s.Value.Status != NavSegmentStatus.NotSelected)
                    {
                        if (s.Value.SelectedItem != null)
                        {
                            if (title.Length > 0)
                                title.Append(" > ");

                            title.Append(s.Value.SelectedItem.Title);

                            if (id.Length > 0)
                                id.Append(".");

                            id.Append(s.Value.SelectedItem.Id);
                        }
                    }
                }

                handler(this, new NavMenuPresentationEventArgs() { ObjectId = id.ToString(), ObjectTitle = title.ToString() });
            }
        }