Q:

MVVM, изменение Visibility через команду из диалогового окна

Пытаюсь реализовать паттерн MVVM. Во View имеется TabControl со следующим TabItem:
<TabItem Background="{x:Null}" Name="diagram" 
         Visibility="{Binding Path=DiagramTabVisibility,
             Converter={StaticResource BooleanToVisibilityConverter}}"/>

Свойство Visibility привязано к свойству DiagramTabVisibility во ViewModel:
bool _diagramTabVisibility = false;
public bool DiagramTabVisibility
{
    get
    {
        return _diagramTabVisibility;
    }
    set
    {
        _diagramTabVisibility = value;
        OnPropertyChanged("DiagramTabVisibility");
    }
}

Изменение вышеуказанного свойство реализовано через команду:
RelayCommand _diagramTabItem;
public ICommand DiagramTabItem
{
    get
    {
        if (_diagramTabItem == null)
            _diagramTabItem =
                new RelayCommand(
                        ExecuteDiagramTabItemCommand,
                        CanExecuteDiagramTabItemCommand);
        return _diagramTabItem;
    }
}

public void ExecuteDiagramTabItemCommand(object Parameter)
{
    DiagramTabVisibility = !DiagramTabVisibility;
}

public bool CanExecuteDiagramTabItemCommand(object Parameter)
{
    return true;
}

При вызове команды из View никаких проблем не возникает, свойство Visibility изменяется и указанный элемент сворачивается/разворачивается.
Однако у меня стоит задача изменения видимости из диалогового окна, в котором имеется точно такая же кнопка, которая работает во View:
<Button Command="{Binding DiagramTabItem}">Диаграмма</Button>

Диалоговое окно вызываю через команду со следующим кодом:
WindowAddDiagram newWindow = new WindowAddDiagram();
newWindow.Owner = this;
newWindow.ShowDialog();

Я подозреваю, что по какой-то причине при исполнении команды из другого окна не срабатывает `OnPropertyChanged("DiagramTabVisibility"). При этом, если поставить точку останова на свойстве DiagramTabVisibility, то видно, что значение меняется, но на View почему-то никаких изменений нет. 
Дополнено:
Datacontext привязывается в XAML:
<Window.DataContext>
    <local:RegAPI />
</Window.DataContext>

Где RegAPI - ViewModel. Datacontext и главного и диалогового окна - RegAPI.

A:

Вы создаете новый экземпляр RegAPI, естественно, что изменения в нем не действуют на другие экземпляры.
Задавайте в качестве DataContext тот же экземпляр, например так:
WindowAddDiagram newWindow = new WindowAddDiagram();
newWindow.Owner = this;
newWindow.DataContext = DataContext;
newWindow.ShowDialog();

