在this链接中,有一个“打开最近的文件”的代码,似乎每个人都知道除了我之外去过哪里。添加代码只有几行,我在下面不明白。这是什么FileOpenCore
??我该怎么替换呢?
RecentFileList.MenuClick += ( s, e ) => FileOpenCore( e.Filepath );
partial class RecentFileList
{
public void InsertFile( string filepath )
public void RemoveFile( string filepath )
}
答案 0 :(得分:3)
我相信FileOpenCore是作者为实际打开文件的方法提供的名称。用你带有文件名的方法替换它并打开它。
只要成功打开文件,就会调用InsertFile方法(可能在FileOpenCore中)。如果您尝试打开文件但失败,则应调用RemoveFile。例如,您不希望保留最近文件列表中不再存在的文件。
所以,如果你像作者那样定义了你的RecentFileList:
<common:RecentFileList x:Name="RecentFileList" />
你可以像在窗口的构造函数中那样挂钩点击处理程序:
RecentFileList.MenuClick += ( s, e ) => FileOpenCore( e.Filepath );
您的FileOpenCore(或您想要调用的任何内容)可能看起来像这样(伪代码):
private void FileOpenCore(string filename)
{
try
{
// read your file
// and do whatever processing you need
// ...
// if open was successful
RecentFileList.InsertFile(filename);
}
catch (Exception e)
{
// opening the file failed - maybe it doesn't exist anymore
// or maybe it's corrupted
RecentFileList.RemoveFile(filename);
// Do whatever other error processing you want to do.
}
}