DialogResult с FolderBrowserDialog в WPF

В первый раз я реализую FolderBrowserDialog в WPF, и я не люблю его один бит...

Помимо проблем, которые я выяснил, что Windows.Forms не упоминалось в моем проекте, теперь у меня возникли проблемы с попыткой увидеть, какое значение возвращает значение DialogResult...

С OpenFileDialog в прошлом я сделал это следующим образом:

OpenFileDialog ofd = new OpenFileDialog();
Nullable<bool> result = ofd.ShowDialog();

if (result == true)
{
    // all went well, carry on and do your thing here
}

К сожалению, теперь я получаю ошибки с этим высказыванием что-то о конверсиях из типа DialogResult в bool и все, что у вас есть.

Кажется, ничего не найдено о том, как завершить этот шаг при использовании диалога в WPF, может ли кто-нибудь пролить свет?

Спасибо заранее!

EDIT

Здесь мой код с поправками без ошибки преобразования типа. Я не уверен, какую ценность проверить result против. Обычно я использую DialogResult.OK, за исключением того, что здесь не отображается допустимое значение.

    private void btnBrowse_Click(object sender, RoutedEventArgs e)
    {
        if (cmbTemplate.SelectedItem == "Blockbusters")
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();

            DialogResult result = fbd.ShowDialog();

            //
            // ERROR: 'System.Nullable<bool>' does not contain a definition for 'OK'
            // and no extention method 'OK' accepting a first argument of type
            // 'System.Nullable<bool>' could be found.
            //
            if (result == DialogResult.OK)
            {
                txtSource.Text = fbd.SelectedPath;
            }
        }
    }

Ответ 1

Хорошо, так что получается, что все ответы на другие ответы здесь были правильными.

Они просто пропустили одно, и я думаю, что это была моя ошибка...

Каждый раз, когда я видел DialogResult в Intellisense при попытке использовать его в моем if-заявлении (как мне сказали использовать, я увидел это:

BOOL? Window.Dialog.Result
Получает или задает значение результата диалога, которое является значением, которое возвращается из файла Метод System.Windows.Window.ShowDialog().

Исключения:
  System.InvalidOperationException

Этот конкретный объект DialogResult не тот, который я искал.

Что в итоге получилось:

DialogResult result = fbd.ShowDialog();

if (result == System.Windows.Forms.DialogResult.OK)
{
    // do work here
}

Стоит отметить, что у меня есть System.Windows.Forms ссылка в моих приложениях, поэтому я никогда не думал ссылаться на класс из System, как в приведенном выше фрагменте. Я думал, что это все равно.

Ответ 2

DialogResult - это перечисление и определяет значения, указывающие возвращаемые значения диалогов.

В вашем коде вы должны проверить DialogResult.OK, чтобы инициализировать свою переменную с помощью пути, выбранного в диалоговом окне. DialogResult.OK возвращается, когда в диалоговом окне нажата кнопка "ОК", иначе возвращается DialogResult.Cancel.

if (result == DialogResult.OK){
  txtSource.Text = fbd.SelectedPath;
}

Ответ 3

DialogResult. (ОК, Отмените все, что вы хотите проверить),

if (result == DialogResult.OK) // DialogResult.(Your desired result, select from the list it generates)
{
    txtSource.Text = fbd.SelectedPath;
}