2012-03-23 44 views
0

this鏈接,有一個「打開最近的文件」的代碼,似乎每個人都明白什麼去除了我。只有幾行添加代碼,下面我不明白。這裏是什麼FileOpenCore ??我應該替換它什麼?最近的文件列表

RecentFileList.MenuClick += (s, e) => FileOpenCore(e.Filepath); 

partial class RecentFileList 
{ 
    public void InsertFile(string filepath) 
    public void RemoveFile(string filepath) 
} 

回答

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. 
    } 
} 
+0

它將菜單項添加到菜單但菜單點擊事件不起作用 – Shibli 2012-03-23 17:28:40