Список последних файлов - PullRequest
0 голосов
/ 23 марта 2012

В этой ссылке есть код для "открытия последних файлов", и кажется, что все понимают, что происходит, кроме меня. Есть всего несколько строк для добавления кода, и я не понимаю ниже. Вот что такое FileOpenCore ?? Что мне заменить на него?

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

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

1 Ответ

3 голосов
/ 23 марта 2012

Я полагаю, 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.
    }
}
...