Мне придется немного угадать здесь, так как я действительно не знаю архитектуру вашей программы. Я предполагаю, что у вас есть два класса Windows: MainWindow и SideWindow и один класс модели представления AppVm . Вам придется адаптироваться, если у вас другие настройки.
Самое простое решение - привязать WindowState обоих окон к одному свойству в ViewModel. Убедитесь, что собственность запускает уведомления.
Класс просмотра модели:
class AppVm : INotifyPropertyChanged {
public event PropertyChangedEventHandler PropertyChanged;
private WindowState m_state;
public WindowState state {
get { return m_state; }
set { m_state=value; raise("state") }
}
private raise(string propname) {
PropertyChanged(this, new PropertyChangedEventArgs(propname));
}
....
}
Теперь в файлах Windows XAML свяжите WindowState с файлом модели представления:
<Window ... WindowState="{Binding Path=state,Mode=TwoWay} ...>
Обратите внимание, как я установил режим на TwoWay. Это гарантирует, что при изменении состояния при использовании щелчка по окну свертывания, оно также изменит значение в виртуальной машине. Вот и все.
Теперь, если ваша архитектура отличается, вам придется адаптироваться. Не ясно, что вы хотите сделать, когда пользователь развернет одно из окон (вы даже разрешаете это). Если у вас есть два разных класса модели представления для каждого окна, вы можете записать более сложный путь, предполагая, что одно представление имеет ссылку на другое представление, сохраняя переменную stae только во внутреннем классе, тогда оператор связывания может быть: Path = OtherVm.state. * * тысячу двадцать-один
Если ваша логика View более сложна, то можно иметь некоторый код в представлении (файлы * .xaml.cs). Единственное правило заключается в том, что модель представления не должна «знать» о представлении (теоретически, виртуальная машина также может запускать «представление модульного теста»). Вы можете подписаться на событие StateChanged of the View и записать свою логику там. В любом случае, самое чистое решение описано в приведенном выше примере кода.
Надеюсь, это помогло.