OpenFileDialog.ShowDialog()在Silverlight中引发InvalidOperationException

时间:2013-05-03 05:53:13

标签: c# silverlight

以下是我的代码段。

OpenFileDialog dialog = new OpenFileDialog()
{
    Filter = "Excel Files (*.xlsx;*.xls;)|*.xlsx;*.xls;",
};

if (dialog.ShowDialog().Value == false)
{
    IsCommiting = false;
    return;
}
else
{
    Items.Clear();
}

当dialog.ShowDialog()调用时,引发了InvalidOperationException并显示此消息“ShowDialog failed。”。

我通过谷歌搜索发现了一篇相关文章。 http://social.msdn.microsoft.com/Forums/en-US/silverlightmvvm/thread/6ae9454b-b5ba-4286-959f-6dc4d347ebf7/

本文是关于打开文件对话框中的多选。但我没有将Multiselect属性设置为True。这个问题不会经常发生,也无法复制。

有没有人遇到同样的问题?

3 个答案:

答案 0 :(得分:1)

你可以尝试:

OpenFileDialog dialog = new OpenFileDialog()
{    
     Filter = "Excel Files (*.xlsx,*.xls)|*.xlsx,*.xls"
};

if (dialog.ShowDialog() == false)
{
    IsCommiting = false;
    return;
}
else
{
    Items.Clear();
}

答案 1 :(得分:0)

虽然听起来有点奇怪 - 因为OpenFileDialog实际上打开了一个资源管理器窗口(执行shell扩展),你考虑过,ShellExView禁用所有shell扩展吗?

答案 2 :(得分:0)

尝试以下方法:

if (dialog.ShowDialog() != DialogResult.OK)
相关问题