2

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

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

4

1 回答 1

1

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
}
于 2018-10-01T11:46:36.293 回答