diff --git a/Correlator/ViewModels/AudioFileViewModel.cs b/Correlator/ViewModels/AudioFileViewModel.cs
index bd5345e..375443e 100644
--- a/Correlator/ViewModels/AudioFileViewModel.cs
+++ b/Correlator/ViewModels/AudioFileViewModel.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Windows;
using System.Windows.Controls;
using Correlator.Util;
using HandyControl.Controls;
@@ -11,6 +12,7 @@
using Prism.Mvvm;
using Prism.Services.Dialogs;
using FileInfo = Correlator.Model.FileInfo;
+using MessageBox = HandyControl.Controls.MessageBox;
namespace Correlator.ViewModels
{
@@ -73,7 +75,7 @@
private FileInfo _selectedFile;
private WaveOutEvent _waveOutEvent = new WaveOutEvent();
private AudioFileReader _audioFileReader;
-
+
public AudioFileViewModel()
{
GoBackCommand = new DelegateCommand(delegate
@@ -89,6 +91,7 @@
_waveOutEvent.Dispose();
_waveOutEvent = null;
}
+
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
});
@@ -105,12 +108,19 @@
}
else
{
- _audioFileReader = new AudioFileReader(fullPath);
- _waveOutEvent.Init(_audioFileReader);
- _waveOutEvent.Play();
+ try
+ {
+ _audioFileReader = new AudioFileReader(fullPath);
+ _waveOutEvent.Init(_audioFileReader);
+ _waveOutEvent.Play();
+ }
+ catch (FormatException)
+ {
+ MessageBox.Show("音频文件损坏,无法播放", "温馨提示", MessageBoxButton.OK, MessageBoxImage.Error);
+ }
}
});
-
+
DeleteItemCommand = new DelegateCommand(() =>
{
File.Delete(_selectedFile.FullPath);
diff --git a/Correlator/ViewModels/AudioFileViewModel.cs b/Correlator/ViewModels/AudioFileViewModel.cs
index bd5345e..375443e 100644
--- a/Correlator/ViewModels/AudioFileViewModel.cs
+++ b/Correlator/ViewModels/AudioFileViewModel.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Windows;
using System.Windows.Controls;
using Correlator.Util;
using HandyControl.Controls;
@@ -11,6 +12,7 @@
using Prism.Mvvm;
using Prism.Services.Dialogs;
using FileInfo = Correlator.Model.FileInfo;
+using MessageBox = HandyControl.Controls.MessageBox;
namespace Correlator.ViewModels
{
@@ -73,7 +75,7 @@
private FileInfo _selectedFile;
private WaveOutEvent _waveOutEvent = new WaveOutEvent();
private AudioFileReader _audioFileReader;
-
+
public AudioFileViewModel()
{
GoBackCommand = new DelegateCommand(delegate
@@ -89,6 +91,7 @@
_waveOutEvent.Dispose();
_waveOutEvent = null;
}
+
RequestClose?.Invoke(new DialogResult(ButtonResult.Cancel));
});
@@ -105,12 +108,19 @@
}
else
{
- _audioFileReader = new AudioFileReader(fullPath);
- _waveOutEvent.Init(_audioFileReader);
- _waveOutEvent.Play();
+ try
+ {
+ _audioFileReader = new AudioFileReader(fullPath);
+ _waveOutEvent.Init(_audioFileReader);
+ _waveOutEvent.Play();
+ }
+ catch (FormatException)
+ {
+ MessageBox.Show("音频文件损坏,无法播放", "温馨提示", MessageBoxButton.OK, MessageBoxImage.Error);
+ }
}
});
-
+
DeleteItemCommand = new DelegateCommand(() =>
{
File.Delete(_selectedFile.FullPath);
diff --git a/Correlator/Views/AudioFileView.xaml b/Correlator/Views/AudioFileView.xaml
index 324c2ae..0010697 100644
--- a/Correlator/Views/AudioFileView.xaml
+++ b/Correlator/Views/AudioFileView.xaml
@@ -114,6 +114,12 @@
Command="{Binding DataContext.PlayAudioCommand, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
CommandParameter="{Binding FullPath}"
Style="{x:Null}">
+
+
+