在我的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
有没有办法做一些类似于我想要完成的事情?
答案 0 :(得分:3)
您只能覆盖现有方法。您无法覆盖不存在的内容 - 您可以创建新内容。然而,Windows不会称之为它不知道的方法。所以坚持使用Windows提供的功能:
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
var file = e.Parameter as Windows.Storage.StorageFile;
if (file!=null)
{
...
}
}