Привет, я пытаюсь разработать Datalogger, поэтому я создаю меню, чтобы переключить параметры, я решил использовать DataTemplates и различные ViewModels. Меню
XAML:
<Window.Resources>
<DataTemplate x:Name="GraficoVtemplate" DataType="{x:Type viewmodels:GraficoVM}">
<view:GraficoV DataContext="{Binding}" />
</DataTemplate>
<DataTemplate x:Name="ListaVtemplate" DataType="{x:Type viewmodels:ListaVM}">
<view:ListaV DataContext="{Binding }"/>
</DataTemplate>
<ContentControl Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="4" Grid.RowSpan="5" Content="{Binding}"/>
Так я могу изменить текст данных;
XAML.CS
private void Novoteste_btn_Click(object sender, RoutedEventArgs e)
{
DataContext = new NovoTesteVM();
}
private void Lista_btn_Click(object sender, RoutedEventArgs e)
{
DataContext = new ListaVM();
}
Это файлы, которые у меня есть, модели пусты, а viewmodals имеют некоторые контролы. Файлы
Проблема в том, что когда я меняю меню, содержимое предыдущего меню несохранено, то есть когда я выбираю меню «lista» и заполняю сетку данных, и я перехожу в другое меню, когда я снова выбираю меню «lista», данные теряются. Я не знаю, что мне нужно добавить или изменитьчтобы данные не терялись
Спасибо за объяснение!
Редактировать 1:
MainWindows.xaml.cs
private void Novoteste_btn_Click(object sender, RoutedEventArgs e)
{
DataContext = NovoTesteVM.NovoTesteViewModel;
}
private void Grafico_btn_Click(object sender, RoutedEventArgs e)
{
DataContext = GraficoVM.Grafico;
}
NovoTesteVM.CS
public class NovoTesteVM
{
private static NovoTesteVM novoTesteViewModel;
public static NovoTesteVM NovoTesteViewModel
{
get
{
novoTesteViewModel = novoTesteViewModel ?? new NovoTesteVM();
return novoTesteViewModel;
}
}
}