Я предполагаю, что вы создаете экземпляр, а второе окно из ViewModel связано со свойством кнопки Command
. Обычно это будет то, как эта ситуация будет обрабатываться в MVVM. Это позволяет вам создать другое свойство в вашей ViewModel, которое запрашивает, открыто ли окно или нет.
private Window _secondWindow = null;
public bool SecondWindowIsOpen
{
get { return _secondWindow != null; }
}
Затем в своем XAML вы можете привязать BackgroundColor кнопки к этому свойству и использовать триггеры для определения цвета.
<Window.Resources>
<Style x:Key="WindowIsOpenButtonStyle" TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding SecondWindowIsOpen}" Value="True">
<Setter Property="Background" Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Button Background="Yellow" Command="{Binding OpenSecondWindow}" Style="{StaticResource WindowIsOpenButtonStyle}" />
</Grid>
Теперь, когда окно открыто, цвет фона кнопки изменится на Желтый, а когда он снова закроется, он вернется к своему первоначальному цвету.