我是C#和XAML中Windows 8开发的初学者。我正在尝试制作一个基本的文本编辑器,但是我无法使保存功能正常工作。我的代码是:
private async void SaveAs_Click(object sender, RoutedEventArgs e)
{
FileSavePicker savePicker = new FileSavePicker();
savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".txt" });
savePicker.FileTypeChoices.Add("Markdown", new List<string>() { ".md" });
savePicker.SuggestedFileName = "New Document";
StorageFile file = await savePicker.PickSaveFileAsync();
if (file != null)
{
CachedFileManager.DeferUpdates(file);
string textboxtext = "";
await FileIO.WriteTextAsync(file, Editor.Document.GetText(Windows.UI.Text.TextGetOptions.None, out textboxtext));
FileUpdateStatus status = await CachedFileManager.CompleteUpdatesAsync(file);
if (status == FileUpdateStatus.Complete)
{
}
else
{
}
}
else
{
}
}
editor
指的是RichEditBox。
但我收到两条错误消息:
两者都在包含await FileIO.WriteTextAsync(file, Editor.Document.GetText(Windows.UI.Text.TextGetOptions.None, out textboxtext));
我该如何解决这个问题?
感谢您的帮助。
答案 0 :(得分:0)
似乎Editor.Document.GetText方法不会返回一个值(或者只是一个void)。它将其输出改为textboxtext变量,此变量可用作FileIO.WriteTextAsync方法的参数:
string textboxtext;
Editor.Document.GetText(Windows.UI.Text.TextGetOptions.None, out textboxtext)
await FileIO.WriteTextAsync(file, textboxtext);
答案 1 :(得分:0)
问题:GetText返回void
,而不是您期待的string
。
你必须做那样的事情:
string textboxtext = string.Empty;
Editor.Document.GetText(Windows.UI.Text.TextGetOptions.None, out textboxtext)
await FileIO.WriteTextAsync(file, textboxtext);