Я хочу использовать 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. Я буду очень признателен за любые ответы, которые помогут мне найти рабочее решение. Кроме того, не стесняйтесь критиковать меня за использование кода с MVVM, если есть способ избежать этого и получить SaveFileDialog, используя только XAML (тогда я мог бы легко сохранить файл в ModelView).