无法将RichEditBox中的文本写入带有C#Windows应用商店应用的文件

时间:2014-05-19 07:28:45

标签: c# file-io windows-8

我是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。

但我收到两条错误消息:

  • “'。Windows.Storage.FileIO.WriteTextAsync(Windows.Storage.IStorageFile,string)'的最佳重载方法匹配'有一些无效的参数”
  • “参数2:无法从'void'转换为'string'”

两者都在包含await FileIO.WriteTextAsync(file, Editor.Document.GetText(Windows.UI.Text.TextGetOptions.None, out textboxtext));

的行上

我该如何解决这个问题?

感谢您的帮助。

2 个答案:

答案 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 details here

问题:GetText返回void,而不是您期待的string

你必须做那样的事情:

string textboxtext = string.Empty;
Editor.Document.GetText(Windows.UI.Text.TextGetOptions.None, out textboxtext)
await FileIO.WriteTextAsync(file, textboxtext);