Ich habe eine WPF-Anwendung, die ein Fenster enthält. Nur dieses Fenster werfen der Benutzer kann seine Navigation in der App durchführen.WPF MVVM: MainWindow Navigation
der Anwendungsstruktur ist:
- MainWindow.xaml
- MainWindowViewModel.cs
- StartPage.xaml
- StartPageViewMode.cs
- Systems.xaml
- Systems.cs
- Andere Ansichten und ähnliche Modelle.
MainWindow.xaml
<Grid>
<ContentControl Content="{Binding CurrentWorkspace}" x:Name="ContentControlMainWindow" VerticalAlignment="Stretch"/>
</Grid>
MainWindowViewModel.cs
private ContentControl _currentWorkspace;
public ContentControl CurrentWorkspace
{
get => _currentWorkspace;
set => SetProperty(ref _currentWorkspace, value);
}
//c'tor
public MainWindowViewModel()
{
CurrentWorkspace.Content = new ContentControl { Content = new StartPage()
}
Wie Sie bei der Initialisierung der Anwendung sehen kann ich auf die CurrentWorkspace der Startseite Ansicht bin Laden. Jetzt vom StartPageViewModel muss ich den CurrentWorkspace Inhalt zu einer anderen Ansicht ändern. Grundsätzlich habe ich Mühe, diesen CurrentWorkspace von jedem Teil der Anwendung zu kontrollieren (und zu ändern).
Siehe Navigationskonzepte in WPF. – Aybe