Передача StorageFile в OnNavigatedTo в приложении C # WinRT

1

В моем приложении С# WinRT я хотел бы передать StorageFile на новую страницу навигации внутри фрейма, чтобы страница могла открыть документ и поместить содержимое файла в RichEditBox. Я попытался добавить необязательный параметр в OnNavigatedTo с StorageFile, но это приводит к сбою приложения.

Я попытался сделать так, чтобы я мог перейти на страницу, подобную этой, с другой страницы, содержащей фрейм:

RootFrame.Navigate(typeof(Editor), file);

И запустите обрамленную страницу так:

protected override async void OnNavigatedTo(Windows.UI.Xaml.Navigation.NavigationEventArgs e, Windows.Storage.StorageFile file)
        {
            if (file)
            {
                try
                {
                    EditorBox.Document.SetText(Windows.UI.Text.TextSetOptions.None, await Windows.Storage.FileIO.ReadTextAsync(file));
                }
                catch
                {
                }
            }
        }

Но делая это, я получаю следующие ошибки:

  • 'TestApp.Page3.OnNavigatedTo(Windows.UI.Xaml.Navigation.NavigationEventArgs, Windows.Storage.StorageFile)' is a new virtual member in sealed class 'TestApp.Page3'
  • 'TestApp.Page3.OnNavigatedTo(Windows.UI.Xaml.Navigation.NavigationEventArgs, Windows.Storage.StorageFile)': no suitable method found to override

Есть ли способ сделать что-то похожее на то, что я пытаюсь выполнить?

Теги:
xaml
windows-runtime
storagefile

1 ответ

3
Лучший ответ

Вы можете только переопределить существующие методы. Вы не можете переопределить то, чего не существует - вместо этого вы создадите что-то новое. Однако Windows не будет вызывать метод, который он не знает. Поэтому придерживайтесь того, что Windows может предложить:

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    var file = e.Parameter as Windows.Storage.StorageFile;
    if (file!=null)
    {
        ...
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню