Не получается установить новый UserControl для MainWindow C# WPF

Всем привет! Пытаюсь написать приложение по паттерну MVVM, у меня возникла проблема. У меня есть мой основной MainWindow в котором я устанавливаю ContentControl. В классе MainViewModel я делаю привязки для менюшки:

    public RelayCommand HomeViewCommand { get; set; }
    public HomeViewModel HomeVM { get; set; }
    public RelayCommand ProfileViewCommand { get; set; }
    public ProfileViewModel ProfileVM { get; set; }
    public RelayCommand ShopListViewCommand { get; set; }
    public ShopListViewModel ShopListVM { get; set; }
    public GameTlouViewModel GameTlouVM { get; set; }

    public object _currentView;
    public object CurrentView
    {
        get { return _currentView; }
        set
        {
            _currentView = value;
            OnPropertyChanged();
        }
    }

    public MainViewModel()
    {
        HomeVM = new HomeViewModel();
        ProfileVM = new ProfileViewModel();
        ShopListVM = new ShopListViewModel();
        GameTlouVM = new GameTlouViewModel();
        CurrentView = HomeVM;

        HomeViewCommand = new RelayCommand(() =>
        {
            CurrentView = HomeVM;
        });

        ProfileViewCommand = new RelayCommand(() =>
        {
            CurrentView = ProfileVM;
        });

        ShopListViewCommand = new RelayCommand(() =>
        {
            CurrentView = ShopListVM;
        });
    }

Вот мой App.xaml:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Themes/LightTheme.xaml"/>
            <ResourceDictionary Source="Themes/DarkTheme.xaml"/>

        </ResourceDictionary.MergedDictionaries>

        <DataTemplate DataType="{x:Type viewModel:HomeViewModel}">
            <view:HomeView/>
        </DataTemplate>

        <DataTemplate DataType="{x:Type viewModel:ProfileViewModel}">
            <view:ProfileView/>
        </DataTemplate>

        <DataTemplate DataType="{x:Type viewModel:ShopListViewModel}">
            <view:ShopListView/>
        </DataTemplate>

        <DataTemplate DataType="{x:Type viewModel:GameTlouViewModel}">
            <view:GameTlouView/>
        </DataTemplate>
    </ResourceDictionary>
</Application.Resources>    

Когда пользователь нажимает на кнопку ShopListViewCommand, у меня открывается нужный мне UserControl. Там есть кнопка, нажав на которую у пользователя вновь должна смениться UserControl в MainWindow. Как мне это реализовать? Очень много вариантов перепробовал ничего не выходит.

Вот один из вариантов, которые я пытался использовать:

public class ShopListViewModel : ObservableObject
{
    private readonly MainViewModel _mainViewModel;
    public RelayCommand GameTlouViewCommand { get; set; }
    public GameTlouViewModel GameTlouVM { get; set; }

    public ShopListViewModel(MainViewModel mainViewModel)
    {
        _mainViewModel = mainViewModel;
        GameTlouVM = new GameTlouViewModel();

        GameTlouViewCommand = new RelayCommand(() =>
        {
            _mainViewModel.CurrentView = _mainViewModel.GameTlouVM;
        });
    }
}

В MainViewModel:

ShopListVM = new ShopListViewModel(this);

На выходе получаем ошибку: System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."

Очень надеюсь на помощь :)


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