private void ViewSelectedChange(MenuViewModelBase menuView)
        {
            // DO NOT mess up below steps.

            // step #0: skip unselected menu event when switch menu of different menu group
            if (menuView == null)
            {
                return;
            }

            // step #1: configure searcher

            var searcher = ServiceLocator.Current.GetInstance <IViewModelSearcher>();

            searcher.ResetSearchText();

            // step #2: configure paginator

            var paginator = ServiceLocator.Current.GetInstance <IViewModelPaginator>();

            paginator.ResetDisplayPage();

            // if query database failure, prompt

            if (SelectView != null && SelectView.QueryDatabaseFailure())
            {
                ServiceLocator.Current.GetInstance <IViewModelErrorWindow>().ErrorWindow(
                    this,
                    TranslationService.Translate("View_Messagebox_Text_QueryDatabaseFailure").ToString());
            }
        }
        /// <summary>
        /// Initializes a new instance of the MainViewModel class.
        /// </summary>
        public MainViewModel()
        {
            ViewsOfConfig.Add(ServiceLocator.Current.GetInstance <SicknessManagementViewModel>());
            ViewsOfConfig.Add(ServiceLocator.Current.GetInstance <HabitManagementViewModel>());
            ViewsOfConfig.Add(ServiceLocator.Current.GetInstance <AreaManagementViewModel>());
            ViewsOfConfig.Add(ServiceLocator.Current.GetInstance <AdviceManagementViewModel>());

            ViewsOfConfig.ForEach(vm => vm.DisplayTitle());

            ViewSelectedChangeCommand = new RelayCommand <MenuViewModelBase>(ViewSelectedChange);

            // Set specific view
            SelectView = ServiceLocator.Current.GetInstance <SicknessManagementViewModel>();
        }