【发布时间】:2013-05-29 17:31:55
【问题描述】:
我对@987654321@ 有疑问,我想将文档的内容保存在一个文本文件中。为此,我使用下一个代码:
XAML
<RichTextBox Grid.Row="0" x:Name="myRichTextBox" AcceptsTab="True" Margin="20">
<FlowDocument>
<Paragraph>
<Run>Some Paragraph</Run>
</Paragraph>
</FlowDocument>
</RichTextBox>
Code
private void btnSaveToTxt_Click(object sender, RoutedEventArgs e)
{
string fileName = @"D:\testRichTextBox1Text.txt";
SaveToTextFile(fileName);
MessageBox.Show("Text File Saved");
}
public void SaveToTextFile(string fileName)
{
TextRange range;
FileStream fileStream;
range = new TextRange(myRichTextBox.Document.ContentStart,
myRichTextBox.Document.ContentEnd);
fileStream = new FileStream(fileName, FileMode.Create);
range.Save(fileStream, DataFormats.Text);
fileStream.Close();
}
这段代码没问题,它可以工作,但我如何使用MVVM 来做这件事。对于这种方法,我需要 RichTextBox 的 x:Name="myRichTextBox" 属性。
我想绑定一个ICommand 来调用SaveToTextFile() 方法,但是如果没有RichTextBox 中的Name 属性,它将无法工作。
有没有办法用 MVVM 做到这一点? 谢谢!
【问题讨论】:
-
您可以像这样将 RichTextBox 作为 CommandParameter 传递:
CommandParameter={Binding ElementName=myRichTextBox} -
您能否详细解释一下如何在 ViewModel 中获取 name 属性? RichTextBox 刚刚在 View 中创建?