diff --git a/SpineViewer/ViewModels/Exporters/BaseExporterViewModel.cs b/SpineViewer/ViewModels/Exporters/BaseExporterViewModel.cs
index 59aa4d6..f6e1464 100644
--- a/SpineViewer/ViewModels/Exporters/BaseExporterViewModel.cs
+++ b/SpineViewer/ViewModels/Exporters/BaseExporterViewModel.cs
@@ -7,6 +7,7 @@ using Spine.Exporters;
using SpineViewer.Extensions;
using SpineViewer.Models;
using SpineViewer.Resources;
+using SpineViewer.Services;
using SpineViewer.ViewModels.MainWindow;
using System;
using System.Collections;
@@ -74,6 +75,16 @@ namespace SpineViewer.ViewModels.Exporters
public uint MaxResolution { get => _maxResolution; set => SetProperty(ref _maxResolution, value); }
protected uint _maxResolution = 2048;
+ public RelayCommand Cmd_SelectOutputDir => _cmd_SelectOutputDir ??= new(() =>
+ {
+ if (DialogService.ShowOpenFolderDialog(out var selectedPath))
+ {
+ _outputDir = selectedPath;
+ OnPropertyChanged(nameof(OutputDir));
+ }
+ });
+ protected RelayCommand _cmd_SelectOutputDir;
+
///
/// 使用提供的包围盒设置自动分辨率
///
diff --git a/SpineViewer/Views/ExporterDialogs/CustomFFmpegExporterDialog.xaml b/SpineViewer/Views/ExporterDialogs/CustomFFmpegExporterDialog.xaml
index 81f9288..58336f6 100644
--- a/SpineViewer/Views/ExporterDialogs/CustomFFmpegExporterDialog.xaml
+++ b/SpineViewer/Views/ExporterDialogs/CustomFFmpegExporterDialog.xaml
@@ -92,7 +92,7 @@
-
+
diff --git a/SpineViewer/Views/ExporterDialogs/CustomFFmpegExporterDialog.xaml.cs b/SpineViewer/Views/ExporterDialogs/CustomFFmpegExporterDialog.xaml.cs
index 8b45daf..3b0efd3 100644
--- a/SpineViewer/Views/ExporterDialogs/CustomFFmpegExporterDialog.xaml.cs
+++ b/SpineViewer/Views/ExporterDialogs/CustomFFmpegExporterDialog.xaml.cs
@@ -42,15 +42,6 @@ namespace SpineViewer.Views.ExporterDialogs
DialogResult = false;
}
- private void ButtonSelectOutputDir_Click(object sender, RoutedEventArgs e)
- {
- if (DialogService.ShowOpenFolderDialog(out var selectedPath))
- {
- var vm = (CustomFFmpegExporterViewModel)DataContext;
- vm.OutputDir = selectedPath;
- }
- }
-
private void ButtonPickColor_Click(object sender, RoutedEventArgs e)
{
diff --git a/SpineViewer/Views/ExporterDialogs/FFmpegVideoExporterDialog.xaml b/SpineViewer/Views/ExporterDialogs/FFmpegVideoExporterDialog.xaml
index 6397d99..eb05e59 100644
--- a/SpineViewer/Views/ExporterDialogs/FFmpegVideoExporterDialog.xaml
+++ b/SpineViewer/Views/ExporterDialogs/FFmpegVideoExporterDialog.xaml
@@ -92,7 +92,7 @@
-
+
diff --git a/SpineViewer/Views/ExporterDialogs/FFmpegVideoExporterDialog.xaml.cs b/SpineViewer/Views/ExporterDialogs/FFmpegVideoExporterDialog.xaml.cs
index 4c58a55..2192200 100644
--- a/SpineViewer/Views/ExporterDialogs/FFmpegVideoExporterDialog.xaml.cs
+++ b/SpineViewer/Views/ExporterDialogs/FFmpegVideoExporterDialog.xaml.cs
@@ -42,15 +42,6 @@ namespace SpineViewer.Views.ExporterDialogs
DialogResult = false;
}
- private void ButtonSelectOutputDir_Click(object sender, RoutedEventArgs e)
- {
- if (DialogService.ShowOpenFolderDialog(out var selectedPath))
- {
- var vm = (FFmpegVideoExporterViewModel)DataContext;
- vm.OutputDir = selectedPath;
- }
- }
-
private void ButtonPickColor_Click(object sender, RoutedEventArgs e)
{
diff --git a/SpineViewer/Views/ExporterDialogs/FrameExporterDialog.xaml b/SpineViewer/Views/ExporterDialogs/FrameExporterDialog.xaml
index 0e893d7..f46556f 100644
--- a/SpineViewer/Views/ExporterDialogs/FrameExporterDialog.xaml
+++ b/SpineViewer/Views/ExporterDialogs/FrameExporterDialog.xaml
@@ -92,7 +92,7 @@
-
+
diff --git a/SpineViewer/Views/ExporterDialogs/FrameExporterDialog.xaml.cs b/SpineViewer/Views/ExporterDialogs/FrameExporterDialog.xaml.cs
index f4f9e31..217d2e7 100644
--- a/SpineViewer/Views/ExporterDialogs/FrameExporterDialog.xaml.cs
+++ b/SpineViewer/Views/ExporterDialogs/FrameExporterDialog.xaml.cs
@@ -42,15 +42,6 @@ namespace SpineViewer.Views.ExporterDialogs
DialogResult = false;
}
- private void ButtonSelectOutputDir_Click(object sender, RoutedEventArgs e)
- {
- if (DialogService.ShowOpenFolderDialog(out var selectedPath))
- {
- var vm = (FrameExporterViewModel)DataContext;
- vm.OutputDir = selectedPath;
- }
- }
-
private void ButtonPickColor_Click(object sender, RoutedEventArgs e)
{
diff --git a/SpineViewer/Views/ExporterDialogs/FrameSequenceExporterDialog.xaml b/SpineViewer/Views/ExporterDialogs/FrameSequenceExporterDialog.xaml
index 45c533d..b08c19e 100644
--- a/SpineViewer/Views/ExporterDialogs/FrameSequenceExporterDialog.xaml
+++ b/SpineViewer/Views/ExporterDialogs/FrameSequenceExporterDialog.xaml
@@ -92,7 +92,7 @@
-
+
diff --git a/SpineViewer/Views/ExporterDialogs/FrameSequenceExporterDialog.xaml.cs b/SpineViewer/Views/ExporterDialogs/FrameSequenceExporterDialog.xaml.cs
index b4e72fe..0aa157f 100644
--- a/SpineViewer/Views/ExporterDialogs/FrameSequenceExporterDialog.xaml.cs
+++ b/SpineViewer/Views/ExporterDialogs/FrameSequenceExporterDialog.xaml.cs
@@ -42,15 +42,6 @@ namespace SpineViewer.Views.ExporterDialogs
DialogResult = false;
}
- private void ButtonSelectOutputDir_Click(object sender, RoutedEventArgs e)
- {
- if (DialogService.ShowOpenFolderDialog(out var selectedPath))
- {
- var vm = (FrameSequenceExporterViewModel)DataContext;
- vm.OutputDir = selectedPath;
- }
- }
-
private void ButtonPickColor_Click(object sender, RoutedEventArgs e)
{