Example #1
0
        public CreateDefectContentPage(int cIsso, int cGrConstr, string description, IReadOnlyList <object> args)
        {
            InitializeComponent();
            Title = $"{description}. Выбор параметров дефекта.";
            var defectModel = new CreateDefectModel
            {
                CIsso          = cIsso,
                CGrConstr      = cGrConstr,
                Description    = description,
                CDefect        = (int)args[0],
                NDefect        = (string)args[1],
                ParentTreeNode = ((Ais7DefectItem)args[2]).Parent
            };

            defectModel.DefectParameters = Ais7DefectParamValue.ReturnDefectParameters(defectModel.CDefect, defectModel.CGrConstr);
            BindingContext = _vm = new CreateDefectViewModel(defectModel);

            // Прописываем, какие индексы у страниц для удобства
            _indexAdvanced = CarouselView.ItemsSource.Cast <ContentView>().IndexOf(page => page is AdditionalDefectParametersContentView);
            _indexSummary  = CarouselView.ItemsSource.Cast <ContentView>().IndexOf(page => page is SummaryDefectContentView);
            _indexQuality  = CarouselView.ItemsSource.Cast <ContentView>().IndexOf(page => page is QualityParametersTreeView);
            _indexQuantity = CarouselView.ItemsSource.Cast <ContentView>().IndexOf(page => page is QuantityParametersContentPage);

            // Последнему разрешаем работу с кнопкой с самого начала
            _interactors = new List <bool>(new bool[_indexSummary + 1])
            {
                [_indexSummary] = true
            };
            MessagingCenter.Subscribe <Tuple <DefectType, bool> >(this, "InteractionChanged", (interact) => InteractionChanged(interact, EventArgs.Empty));
            ButtonForward.IsEnabled = false;
        }