static NavMenuItem GetNavMenuTree(TreeMapPrItem rootItem)
        {
            NavMenuItem result = null;

            if (rootItem != null) {
                result = new NavMenuItem () { Id = rootItem.PrId, Title = rootItem.PrName };

                if (rootItem.Items.Any ()) {
                    result.Items.AddRange (GetChildrenNavMenu (rootItem));
                }
            }

            return result;
        }
        public void InitControls(TreeMapPrItem navigationObjects)
        {
            {
                var navTree = GetNavMenuTree (navigationObjects);

                navControl.InitControl (navTree);
                navControl.SetBinding (ContentView.IsEnabledProperty, new Binding ("ShowLoadingAnimationInverted"));
            }

            if (Device.OS == TargetPlatform.Android) {
                {
                    var goalGroup = new BindableRadioGroup () { Orientation = StackOrientation.Horizontal };
                    goalGroup.ItemsSource = new List<string> () { "нефть", "обводненность" };
                    goalGroup.SelectedIndex = 1;
                    goalGroup.SelectedIndex = 0;
                    goalGroup.CheckedChanged += ViewModel.OnSelectedGoalChanged;
                    cnvGoal.Content = goalGroup;
                }

                {
                    var rowCountGroup = new BindableRadioGroup () { Orientation = StackOrientation.Horizontal };
                    rowCountGroup.ItemsSource = new List<string> () { "50", "100", "300" };
                    rowCountGroup.SelectedIndex = 1;
                    rowCountGroup.SelectedIndex = 0;
                    rowCountGroup.CheckedChanged += ViewModel.OnSelectedCountChanged;
                    cnvRowCount.Content = rowCountGroup;
                }

            } else {
                {
                    var goalSegmentView = new SegmentedControlView ();
                    goalSegmentView.SegmentsItens = "нефть;обводненность";
                    goalSegmentView.TintColor = Color.FromHex ("#4487CA");
                    goalSegmentView.PropertyChanged += OnGoalChanged;
                    cnvGoal.Content = goalSegmentView;
                }

                {
                    var rowCountSegmentView = new SegmentedControlView ();
                    rowCountSegmentView.SegmentsItens = "50;100;300";
                    rowCountSegmentView.TintColor = Color.FromHex ("#4487CA");
                    rowCountSegmentView.PropertyChanged += OnRowCountChanged;
                    cnvRowCount.Content = rowCountSegmentView;
                }
            }

            {
                Switch swt;
                if (Device.OS == TargetPlatform.Android) {
                    swt = new Switch (){ HorizontalOptions = LayoutOptions.End };
                } else {
                    swt = new ExtendedSwitch (){ HorizontalOptions = LayoutOptions.End, TintColor = Color.FromHex ("#D64B30") };
                }
                swt.SetBinding (Switch.IsToggledProperty, new Binding ("IsRedColor"));
                swt.SetBinding (View.IsEnabledProperty, new Binding ("ShowLoadingAnimationInverted"));

                Grid.SetColumn (swt, 2);
                grdRed.Children.Add (swt);
            }

            {
                Switch swt;
                if (Device.OS == TargetPlatform.Android) {
                    swt = new Switch (){ HorizontalOptions = LayoutOptions.End };
                } else {
                    swt = new ExtendedSwitch (){ HorizontalOptions = LayoutOptions.End, TintColor = Color.FromHex ("#189A55") };
                }
                swt.SetBinding (Switch.IsToggledProperty, new Binding ("IsGreenColor"));
                swt.SetBinding (View.IsEnabledProperty, new Binding ("ShowLoadingAnimationInverted"));

                Grid.SetColumn (swt, 2);
                grdGreen.Children.Add (swt);
            }

            {
                Switch swt;
                if (Device.OS == TargetPlatform.Android) {
                    swt = new Switch (){ HorizontalOptions = LayoutOptions.End };
                } else {
                    swt = new ExtendedSwitch (){ HorizontalOptions = LayoutOptions.End, TintColor = Color.FromHex ("#D1AA12") };
                }
                swt.SetBinding (Switch.IsToggledProperty, new Binding ("IsYellowColor"));
                swt.SetBinding (View.IsEnabledProperty, new Binding ("ShowLoadingAnimationInverted"));

                Grid.SetColumn (swt, 2);
                grdYellow.Children.Add (swt);
            }
        }
        static IEnumerable<NavMenuItem> GetChildrenNavMenu(TreeMapPrItem parentItem)
        {
            var result = new List<NavMenuItem> ();

            foreach (var zx in parentItem.Items) {
                result.Add (new NavMenuItem () { Id = zx.ZxId, Title = zx.ZxName, ParentId = parentItem.PrId });
            }

            return result;
        }