2012-03-23 11 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