C# YouTube Downloader

Пишу скачиватель видео с ютуба на либе VideoLibrary. В интерфейсе есть прогрессбар и две кнопки + еще поле для ввода, одна кнопка это скачать, а вторая указать папку куда скачивать. Я привязал к кнопке выбора папки диалоговое окно, но не могу вывести от туда результат и поместить туда путь до папки, а код указанный ниже выдает ошибку

Нет перегруженного метода для "downloadik_Click", который соответствует делегату "RoutedEventHandler"
using VideoLibrary;
using Ookii.Dialogs;
using Ookii.Dialogs.Wpf;
using WinForms = System.Windows.Forms;

namespace WpfApp4
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {

            WinForms.FolderBrowserDialog folderDialog = new WinForms.FolderBrowserDialog();
            folderDialog.ShowNewFolderButton = false;
            folderDialog.SelectedPath = System.AppDomain.CurrentDomain.BaseDirectory;
            WinForms.DialogResult result = folderDialog.ShowDialog();
        }

        private void downloadik_Click(object sender, RoutedEventArgs e, string result)
        {
            string link = url.ToString();
            var youTube = YouTube.Default;

            var video = YouTube.Default.GetAllVideos(link).First(v => v.Resolution == 720);
            var audio = YouTube.Default.GetVideo(link);

            byte[] bytesvideo = video.GetBytes();
            File.WriteAllBytes(result + video.FullName, bytesvideo);

        }
    }
}

Ответы (1 шт):

Автор решения: Pavel Popov

Сохраняйте выбранный путь в некую переменную вашей формы и используйте в дальнейшем ее. А аргумент result из downloadik_Click нужно убрать, иначе он не может быть обработчиком события нажатия кнопки. Я добавил еще проверку, на то выбран путь или нет.

private string _curDirectorySave;

private void Button_Click(object sender, RoutedEventArgs e)
{   
    WinForms.FolderBrowserDialog folderDialog = new WinForms.FolderBrowserDialog();
    folderDialog.ShowNewFolderButton = false;
    folderDialog.SelectedPath = System.AppDomain.CurrentDomain.BaseDirectory;
    if (folderDialog.ShowDialog() == WinForms.DialogResult.OK)
         _curDirectorySave = folderDialog.SelectedPath;
}

private void downloadik_Click(object sender, RoutedEventArgs e)
{
    if (string.IsNullOrEmpty(_curDirectorySave))
    {
        MessageBox.Show("Выберите путь сохранения");
        return;
    }
    string link = url.ToString();
    var youTube = YouTube.Default;

    var video = YouTube.Default.GetAllVideos(link).First(v => v.Resolution == 720);
    var audio = YouTube.Default.GetVideo(link);

    byte[] bytesvideo = video.GetBytes();
    File.WriteAllBytes(_curDirectorySave + video.FullName, bytesvideo); 
}
→ Ссылка