async Task <string> SelectSpectrumAsync(string description) { var message = new SelectOpenFileMessage(this) { Message = description }; message.Filter = new string[] { "id" }; Messenger.Default.Send(this, message); if (!string.IsNullOrEmpty(message.SelectedFile)) { var id_file = message.SelectedFile; var dir = System.IO.Path.GetDirectoryName(id_file); if ((await IdFile.CheckTypeAsync(id_file)) == DataType.WideScan) { return(dir); } else { // ※ViewModelからUIにメッセージを送る仕組みはどうする? // WideScanじゃないよ! throw new NotWideScanException("WideScanのデータしか使えませんよ!"); } } else { // 単なるキャンセル. return(string.Empty); } }
/// <summary> /// JEOLの測定データを開きます. /// </summary> /// <returns></returns> public async Task OpenJampData() { var dialog = new Microsoft.Win32.OpenFileDialog { Filter = "idファイル(id)|id" }; if (dialog.ShowDialog() == true) { var id_file = dialog.FileName; var dir = System.IO.Path.GetDirectoryName(id_file); switch (await IdFile.CheckTypeAsync(id_file)) { case DataType.WideScan: // WideScanモードにする. //tabControlData.SelectedIndex = 0; //_wideScanData = await WideScanViewModel.GenerateAsync(dir); await _wideScanData.WideScanFittingData.LoadFromAsync(dir); JampDataOpened(this, new JampDataEventArgs(DataType.WideScan)); break; case DataType.DepthProfile: // DepthProfileモードにする. await _depthProfileData.DepthProfileFittingData.LoadFromAsync(dir); JampDataOpened(this, new JampDataEventArgs(DataType.DepthProfile)); //tabControlData.SelectedIndex = 1; //_depthProfileData = await DepthProfile.GenerateAsync(dir); //TestOpenDepthProfile(dir, true); break; } } }