2012-09-27 138 views
0

我有一個包含一些內容的文本框。我還有一個按鈕(SAVE),它可以打開FileSaveDialog並允許內容保存在一個.txt文件中。如何將文本框的內容保存到文本文件中

XAML:

<TextBox Height="93" IsReadOnly="True" Text="{Binding Path=ReadMessage, Mode=TwoWay}" Name="MessageRead" /> 

<Button Content="Save" Command="{Binding Path=SaveFileCommand}" Name="I2CSaveBtn" /> 

視圖模型:

private string _readMessage = string.Empty; 
    public string ReadMessage 
    { 
     get 
     { 
      return _readMessage; 
     } 
     set 
     { 
      _readMessage = value; 
      NotifyPropertyChanged("ReadMessage"); 
     } 
    } 

public static RelayCommand SaveFileCommand { get; set; } 

private void RegisterCommands() 
    {    
     SaveFileCommand = new RelayCommand(param => this.ExecuteSaveFileDialog()); 
    } 
private void ExecuteSaveFileDialog() 
    { 
     //What To Do HERE??? 
    } 

我基本上需要被讀取文本框的內容,打開一個文件保存對話框,並將其存儲在一個文本文件保存在我的系統。

回答

5

使用SaveFileDialog你可以做一些沿着這些線路

string fileText = ReadMessage; 

SaveFileDialog dialog = new SaveFileDialog() 
{ 
    Filter = "Text Files(*.txt)|*.txt|All(*.*)|*" 
}; 

if (dialog.ShowDialog() == true) 
{ 
    File.WriteAllText(dialog.FileName, fileText); 
} 
+0

呀效果很好。謝謝理查德:) –

+0

可能要檢查文件是否已經存在/你想覆蓋等.... –

+0

是的。它工作順利:)如何打開一個對話框以加載文本文件? –

1

嘗試是這樣的:

SaveFileDialog saveFileDialog1 = new SaveFileDialog(); 
    saveFileDialog1.Filter = "Text file|*.txt"; 
    saveFileDialog1.Title = "Save an Image File"; 
    saveFileDialog1.ShowDialog(); 

    // If the file name is not an empty string open it for saving. 
    if(saveFileDialog1.FileName != "") 
    { 
System.IO.File.WriteAllText(saveFileDialog1.FileName, MessageRead.Text); 
} 
+0

你應該檢查'ShowDialog'是否返回'true'。 –

+0

好的。這就是MSDN上的情況,所以我總是認爲這是理所當然的。 –

相關問題