我第一次在 WPF 中实现FolderBrowserDialog,但我一点也不喜欢它......
除了我发现我的项目中没有引用 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;
}
}
}
好吧,事实证明这里的所有其他答案都是正确的。
他们只是错过了一件事,我认为那是我的错......
每次我看到DialogResult
在智能感知中,当尝试在我的 if 语句中使用它时(正如我被告知使用的那样,我看到了这个:
布尔?窗口.对话框.结果
获取或设置对话框结果值,该值是从
System.Windows.Window.ShowDialog() 方法。
例外情况:
系统无效操作异常
这个特定的 DialogResult 对象不是我正在寻找的对象。
最终起作用的是以下内容:
DialogResult result = fbd.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
// do work here
}
值得注意的是我确实有System.Windows.Forms
在我的使用中引用,这就是为什么我从未想过像上面的代码片段中那样从 System 引用该类。我还以为是用这个呢
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)