1

在我的 C# WinRT 应用程序中,我想将 StorageFile 传递给框架内的新导航页面,以便该页面可以打开文档并将文件的内容放入 RichEditBox。我尝试使用 StorageFile 向 OnNavigatedTo 添加一个可选参数,但这会导致应用程序崩溃。

我试图做到这一点,以便我可以从另一个包含框架的页面导航到这样的页面:

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

有什么方法可以做类似于我想要完成的事情吗?

4

1 回答 1

3

您只能覆盖现有方法。你不能覆盖不存在的东西——你会创造一些新的东西。但是 Windows 不会调用它不知道的方法。所以坚持使用 Windows 提供的功能:

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    var file = e.Parameter as Windows.Storage.StorageFile;
    if (file!=null)
    {
        ...
    }
}
于 2014-05-26T17:49:57.163 回答