Отрисовка страниц на WPF C#

Создаю приложение, и не могу понять вроде делал по инструкции с гайда в интернете, но переключение страниц не работает, при нажатии кнопки, подскажите пожалуйста: Сама функция переключения:

using GalaSoft.MvvmLight.Command;
using PCheck.View;
using System.Windows.Controls;
using System.Windows.Input;

namespace PCheck
{
    internal class ViewMainModal : ViewModelChangings
    {
        private Page _startPage = new StartPage();
        private Page _diagnosticPage = new DiagnosticPage();
        private Page _mainPage = new MainPage();

        public Page _CurPage
        {
            get => null;
            set => Set(ref _startPage, value);
        }

        public ICommand OpenStartPage
        {
            get
            {
                return new RelayCommand(() => _CurPage = _startPage);
            }
        }
        public ICommand OpenDiagnosticPage
        {
            get
            {
                return new RelayCommand(() => _CurPage = _diagnosticPage);
            }
        }
        public ICommand OpenMainPage
        {
            get
            {
                return new RelayCommand(() => _CurPage = _mainPage);
            }
        }
    }
}

И так же Xaml где находится следующие основные элементы, это кнопка по которой идёт переключение,frame в котором будет появляться окно и объявление где хранится и какая функция используется

<Window.DataContext>
    <local:ViewMainModal d:IsDataSource="True"/>
</Window.DataContext>
    xmlns:dc="clr-namespace:PCheck.View"
    xmlns:local="clr-namespace:PCheck"
    <Button HorizontalAlignment="Left" Command="{Binding OpenStartPage}" BorderThickness="0" Margin="774,457,0,0" VerticalAlignment="Top" BorderBrush="Transparent" Height="52" Width="208" FontFamily="Rostelecom Basis" FontWeight="Bold" FontSize="17" Background="#FFFD4E1F" Foreground="{x:Null}" Cursor="Hand" Click="Button_Click_4">
    <Frame x:Name="MainFraime" NavigationUIVisibility="Hidden" Content="{Binding _CurPage}" Navigated="MainFraime_Navigated"/>

Ответы (1 шт):

Автор решения: aepot

Только сейчас заметил get => null;. Что должно происходить, если вы что бы не происходило, отдаете null?

internal class ViewMainModal : ViewModelChangings
{
    private page _curPage = new MainPage();

    public Page CurPage
    {
        get => _curPage;
        set => Set(ref _curPage, value);
    }

    public ICommand OpenStartPage { get; } = new RelayCommand(() => CurPage = new StartPage());
    public ICommand OpenDiagnosticPage { get; } = new RelayCommand(() => CurPage = new DiagnosticPage());
    public ICommand OpenMainPage { get; } = new RelayCommand(() => CurPage = new MainPage());
}

Но вообще Frame+Page не подходят для нормального использования в MVVM, поэтому я бы рекомендовал другое решение.

Я переименовал свойство, чтобы избежать путаницы, не забудьте Content="{Binding CurPage}" поправить в XAML.

→ Ссылка