我想在后面的代码中使用 SaveFileDialog 来使用 ViewModel 中包含的数据编写文件。我正在使用的 XAML 类由父类的列表框中的选择填充:
<Views:ChildView DataContext="{Binding Path=SelectedItem, ElementName=childrenListbox}"></Views:ChildView >
然后,在 ChildView XAML 文件中,我可以按预期自由访问 ChildViewModel 的属性/方法。但是,我不知道如何从后面的代码中访问它们。我有一个“保存文件”按钮
<Button Content="Save File" Click="Button_Click"></Button>
其事件在后面的代码中处理:
private void Button_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = "Document";
dlg.DefaultExt = ".txt";
dlg.Filter = "Text documents (.txt)|*.txt";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
string filename = dlg.FileName;
//Here I would like to call the SaveFile function in ChildViewModel
}
}
我尝试查看所有可用属性,但找不到访问正在使用的 ChildViewModel 实例的方法。这个问题可能有一个简单的解决方案,但我不熟悉使用代码隐藏,因为我正在创建我的第一个公会并且我一直在使用 MVVM 方法。我将非常感谢任何帮助我找到有效解决方案的答案。另外,如果有办法避免它并仅使用 XAML 获得 SaveFileDialog,请随时批评我使用 MVVM 背后的代码(然后我可以轻松地在 ModelView 中保存文件)。