Не меняется отображение User Control при смене переменной откуда он биндится

Всем добрый день, у меня есть Main Window, куда биндятся мои User Control, а именно Footer(нижняя часть), Header(верхняя часть), Body(часть где будут отображаться разнообразные User Control, к примеру добовление товара на одном, удаление на другом и тд.), Body Control(часть где отображены кнопки для изменения Body). И сама проблема заключается в том что что когда я в Body изначально указываю User Control который нужно загрузить, всё работает, а вот при попытке смены User Control, значение доходит до переменной откуда биндятся User Control и до xaml доходит, но по какой то причине не отображается.

Код BodyViewModel

namespace MusicShop.Modules.Body
{
public class BodyViewModel : INotifyPropertyChanged
{
    private UserControl DelUser;

    //public AddProductViewModel addProductViewModel { get; set; }
    //public AddProductView addProductView { get; set; }

    public DelProductViewModel delProductViewModel { get; set; }
    public DelProductView delProductView { get; set; }

    public BodyViewModel()
    {
        //addProductViewModel = new AddProductViewModel();
        //addProductView = new AddProductView();

        delProductViewModel = new DelProductViewModel();
        delProductView = new DelProductView();

        DelUser = delProductView;
        DelUser.DataContext = delProductViewModel;

        Control = DelUser;
    }

    private UserControl _control; 
    public UserControl Control
    {
        get { return _control; }
        set
        {
                _control = value;
                OnPropertyChanged(nameof(Control));
        }
    } 

    public event PropertyChangedEventHandler PropertyChanged;
    public void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

}

Код BodyView

    <UserControl x:Class="MusicShop.Modules.Body.BodyView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:MusicShop.Modules.Body"
         mc:Ignorable="d" 
         d:DesignHeight="900" d:DesignWidth="1536"
         d:DataContext="{d:DesignInstance Type=local:BodyViewModel}">
<UserControl.Resources>
    <DataTemplate DataType="{x:Type local:BodyViewModel}">
        <local:BodyView/>
    </DataTemplate>
</UserControl.Resources>
<Grid>
    <ContentControl Content="{Binding Control}"/>
</Grid>

Код BodyControlViewModel

    namespace MusicShop.Modules.BodyControl
    {
public class BodyControlViewModel : INotifyPropertyChanged
{
    public UserControl User;
    public BodyViewModel _bodyViewModel { get; set; }

    public AddProductViewModel _addProductViewModel { get; set; }

    public AddProductView _addProductView { get; set; }

    public RelayCommand AddControlBtn { get; set; }
    public BodyControlViewModel()
    {
        _bodyViewModel = new BodyViewModel();

        _addProductView = new AddProductView();

        _addProductViewModel = new AddProductViewModel();

        User = new UserControl();

        User = _addProductView;
        User.DataContext = _addProductViewModel;

        AddControlBtn = new RelayCommand(AddControl);
    }


    public void AddControl()
    {
        _bodyViewModel.Control = User;
    }

    public event PropertyChangedEventHandler PropertyChanged;
    public void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

}


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