First time I'm implementing a FolderBrowserDialog in WPF and I'm not loving it one bit...
Aside from the issues I had figuring out that Windows.Forms wasn't referenced in my project, now I'm having trouble trying to see what the DialogResult return value is...
With an OpenFileDialog, in the past I've done it thusly:
OpenFileDialog ofd = new OpenFileDialog();
Nullable<bool> result = ofd.ShowDialog();
if (result == true)
{
// all went well, carry on and do your thing here
}
Unfortunately, I'm now getting errors with this saying something about conversions from type DialogResult to bool and whatever have you.
Can't seem to find anything on how to complete this step in using the dialog in WPF, can anyone shed some light?
Thanks in advance!
EDIT
Here's my code as amended without the type conversion error. I'm not sure what value to check result
against. Typically I'd use DialogResult.OK
except that doesn't appear as a valid value here.
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;
}
}
}
Okay so it turns out all answers other answers here were right.
They just missed out one thing and I think that was my fault...
Every time I saw DialogResult
in Intellisense when trying to use it in my if statement (as I've been told to use, I saw this:
bool? Window.Dialog.Result
Gets or sets the dialog result value, which is the value that is returned from the
System.Windows.Window.ShowDialog() method.Exceptions:
System.InvalidOperationException
This particular DialogResult object isn't the one I was looking for.
What finally worked was the following:
DialogResult result = fbd.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
// do work here
}
It's worth noting that I do have System.Windows.Forms
referenced in my usings which is why I never thought to reference the class from System as in the above snippet. I thought it was using this anyway.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With