/// <summary> /// Навигация по страницам. Источниками сообщений обычно являются ViewModels страниц, /// которые хостятся в этом окне. /// </summary> /// <param name="msg">Сообщение на какую страницу перейти</param> void NavigateToPage(AddDataWindowMessages msg) { switch (msg) { case AddDataWindowMessages.SelectUsbDevicePage: frame.NavigationService.Navigate( new Uri("Views/AddDataView/SelectUsbDevicePage.xaml", UriKind.RelativeOrAbsolute)); break; case AddDataWindowMessages.SelectZippedRepositoryPage: frame.NavigationService.Navigate( new Uri("Views/AddDataView/SelectPathPage.xaml", UriKind.RelativeOrAbsolute)); break; case AddDataWindowMessages.SelectFolderPage: frame.NavigationService.Navigate( new Uri("Views/AddDataView/SelectPathPage.xaml", UriKind.RelativeOrAbsolute)); break; case AddDataWindowMessages.SelectExportPathPage: frame.NavigationService.Navigate( new Uri("Views/AddDataView/SelectPathPage.xaml", UriKind.RelativeOrAbsolute)); break; case AddDataWindowMessages.SelectDataSourcePage: frame.NavigationService.Navigate( new Uri("Views/AddDataView/SelectDataSourcePage.xaml", UriKind.RelativeOrAbsolute)); break; case AddDataWindowMessages.SelectFtpServerPage: frame.NavigationService.Navigate( new Uri("Views/AddDataView/SelectFtpServerPage.xaml", UriKind.RelativeOrAbsolute)); break; case AddDataWindowMessages.AvailableFaultsPage: frame.NavigationService.Navigate( new Uri("Views/AddDataView/AvailableFaultsPage.xaml", UriKind.RelativeOrAbsolute)); break; case AddDataWindowMessages.ReadProgressPage: frame.NavigationService.Navigate( new Uri("Views/AddDataView/ReadProgressPage.xaml", UriKind.RelativeOrAbsolute)); break; case AddDataWindowMessages.SelectPsnConfiguration: frame.NavigationService.Navigate( new Uri("Views/AddDataView/SelectPsnConfigurationPage.xaml", UriKind.RelativeOrAbsolute)); break; case AddDataWindowMessages.SelectFtpDevicePage: frame.NavigationService.Navigate( new Uri("Views/AddDataView/SelectFtpDevicePage.xaml", UriKind.RelativeOrAbsolute)); break; case AddDataWindowMessages.DeviceLocomotiveNameViewModel: frame.NavigationService.Navigate( new Uri("Views/AddDataView/DeviceLocomotiveNamePage.xaml", UriKind.RelativeOrAbsolute)); break; } }
/// <summary> /// Сбрасывает (обнуляет) МП предыдущей страницы (с которой вернулись обратно). /// </summary> /// <param name="prevPage"></param> private void ResetPreviousPageViewModel(AddDataWindowMessages prevPage) { switch (prevPage) { case AddDataWindowMessages.SelectDataSourcePage: _selectDataSource = null; break; case AddDataWindowMessages.SelectUsbDevicePage: _selectUsbUsbDevice = null; break; case AddDataWindowMessages.SelectZippedRepositoryPage: _selectPath = null; break; case AddDataWindowMessages.SelectFolderPage: _selectPath = null; break; case AddDataWindowMessages.SelectExportPathPage: _selectPath = null; break; case AddDataWindowMessages.AvailableFaultsPage: _availableFaults = null; break; case AddDataWindowMessages.ReadProgressPage: _readProgressViewModel = null; break; case AddDataWindowMessages.SelectPsnConfiguration: _selectPsnConfiguration = null; break; case AddDataWindowMessages.SelectFtpServerPage: _selectFtpServer = null; break; case AddDataWindowMessages.SelectFtpDevicePage: _selectFtpDevice = null; break; case AddDataWindowMessages.DeviceLocomotiveNameViewModel: _deviceLocomotiveName = null; break; default: throw new ArgumentOutOfRangeException(); } }