Проблема в том, что привязка свойств ViewModel к свойствам элемента управления работает некорректно. Я проверил, что свойства и их значения меняются, но видимость элементов управления не меняется. Есть идеи, что с этим связано? Или я что-то упускаю?
ViewModel:
class MainViewModel
{
public LoginViewModel LoginViewModel { get; set; }
Notifier notifier = new Notifier();
public MainViewModel()
{
LoginViewModel = new LoginViewModel();
}
private Visibility mdiPanelVisibility=Visibility.Visible;
public Visibility MDIPanelVisibility
{
get
{
return mdiPanelVisibility;
}
set
{
mdiPanelVisibility = value;
NotifyPropertyChanged("MDIPanelVisibility");
}
}
private RelayCommand showMDIPanelCommand;
public RelayCommand ShowMDIPanelCommand
{
get
{
return showMDIPanelCommand ??
(showMDIPanelCommand = new RelayCommand(obj =>
{
MDIPanelVisibility = Visibility.Visible;
}));
}
}
private RelayCommand hideMDIPanelCommand;
public RelayCommand HideMDIPanelCommand
{
get
{
return hideMDIPanelCommand ??
(hideMDIPanelCommand = new RelayCommand(obj =>
{
MDIPanelVisibility = Visibility.Hidden;
}));
}
}
private event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
и просмотр:
<Border Visibility = "{Binding MDIPanelVisibility}">
<Border.InputBindings>
<MouseBinding MouseAction = "LeftClick" Command = "{Binding HideMDIPanelCommand}"/>
</Border.InputBindings>
</Border>
<ContentPresenter Width = "Auto" Grid.RowSpan = "2" Panel.ZIndex = "1" VerticalAlignment = "Center" Visibility = "{Binding MDIPanelVisibility}">
<ContentPresenter.Content>
<local:MDIView/>
</ContentPresenter.Content>
</ContentPresenter>
<Button Content = "Личный кабинет" FontSize = "13" Command = "{Binding ShowMDIPanelCommand}">
<Button.Style>
<Style TargetType = "Button" BasedOn = "{StaticResource aLogButton}"/>
</Button.Style>
</Button>





Класс MainViewModel должен быть унаследован от INotifyPropertyChanged, чего нет в вашем классе, чтобы структура привязки вела себя должным образом, когда DataContext представления установлен на экземпляр MainViewModel.
Обновление определения класса
public class MainViewModel: INotifyPropertyChanged {
//...
}