WindowsAPICodePack的CommonSaveFileDialog中的InvalidOperationException

时间:2012-04-11 09:32:14

标签: c# wpf windows-api-code-pack

我在WPF中使用WindowsAPICodePack的CommonSaveFileDialog来询问用户文件名。为了在对话框关闭之前检查文件名,我有一个FileOk的处理程序。但是,如果我尝试获取FileName属性,则会抛出InvalidOperationException,说明在关闭对话框之前该属性不可用。

那么在FileOk处理程序中,如何检索用户选择或输入的完整文件名?

1 个答案:

答案 0 :(得分:0)

Hans Passant建议的可能的解决方法,而不修改源代码:

dialog.FileOk += (sender, e) =>
{
    var filenames = new Collection<string>();
    typeof(CommonFileDialog)
        .GetMethod("PopulateWithFileNames", BindingFlags.Instance | BindingFlags.NonPublic)
        .Invoke(dialog, new[] { filenames });

    // use filenames
}