Esempio n. 1
0
        void OnAppPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            String propertyName = e.PropertyName;

            if (propertyName == nameof(ApplicationViewModel.Mode))
            {
                ViewMode newValue     = m_model.Mode;
                ViewMode previousMode = m_model.PreviousMode;

                if (newValue == ViewMode.Standard)
                {
                    EnsureCalculator();
                    m_model.CalculatorViewModel.AreHistoryShortcutsEnabled           = true;
                    m_model.CalculatorViewModel.HistoryVM.AreHistoryShortcutsEnabled = true;
                    m_calculator.AnimateCalculator(NavCategory.IsConverterViewMode(previousMode));
                    m_model.CalculatorViewModel.HistoryVM.ReloadHistory(newValue);
                }
                else if (newValue == ViewMode.Scientific)
                {
                    EnsureCalculator();
                    m_model.CalculatorViewModel.AreHistoryShortcutsEnabled           = true;
                    m_model.CalculatorViewModel.HistoryVM.AreHistoryShortcutsEnabled = true;
                    if (m_model.PreviousMode != ViewMode.Scientific)
                    {
                        m_calculator.AnimateCalculator(NavCategory.IsConverterViewMode(previousMode));
                    }

                    m_model.CalculatorViewModel.HistoryVM.ReloadHistory(newValue);
                }
                else if (newValue == ViewMode.Programmer)
                {
                    m_model.CalculatorViewModel.AreHistoryShortcutsEnabled           = false;
                    m_model.CalculatorViewModel.HistoryVM.AreHistoryShortcutsEnabled = false;
                    EnsureCalculator();
                    if (m_model.PreviousMode != ViewMode.Programmer)
                    {
                        m_calculator.AnimateCalculator(NavCategory.IsConverterViewMode(previousMode));
                    }
                }
                else if (NavCategory.IsDateCalculatorViewMode(newValue))
                {
                    if (m_model.CalculatorViewModel != null)
                    {
                        m_model.CalculatorViewModel.AreHistoryShortcutsEnabled           = false;
                        m_model.CalculatorViewModel.HistoryVM.AreHistoryShortcutsEnabled = false;
                    }
                    EnsureDateCalculator();
                }
                else if (NavCategory.IsConverterViewMode(newValue))
                {
                    if (m_model.CalculatorViewModel != null)
                    {
                        m_model.CalculatorViewModel.AreHistoryShortcutsEnabled           = false;
                        m_model.CalculatorViewModel.HistoryVM.AreHistoryShortcutsEnabled = false;
                    }
                    EnsureConverter();
                    if (!NavCategory.IsConverterViewMode(previousMode))
                    {
                        // UNO TODO
                        // m_converter.AnimateConverter();
                    }
                }

                ShowHideControls(newValue);

                UpdateViewState();
                SetDefaultFocus();
            }
            else if (propertyName == nameof(ApplicationViewModel.CategoryName))
            {
                SetHeaderAutomationName();
                AnnounceCategoryName();
            }
        }