我正在尝试使用MVVM绑定窗口的宽度和高度。
在我的ViewModel中,我声明此属性:
public Size WindowSize
{
get => _windowSize;
set
{
_windowSize = value;
OnPropertyChanged();
}
}
在我的XAML中,我这样输入:
<Window
Width="{Binding WindowSize.Width, Mode=TwoWay}"
Height="{Binding WindowSize.Height, Mode=TwoWay}"
...>
如果我首先像WindowSize = new Size(100, 600);
那样初始化它,那么它可以工作,但是如果以后在ViewModel代码中这样做,它只会更改窗口的宽度。我订阅了窗口的OnSizeChanged事件,发现在设置Size时仅调用一次,并且在SizeChangedEventArgs中仅更新了NewSize.Width属性。如果我删除宽度绑定,它将再次适用于高度。因此,似乎无法识别第二个“宽度”或“高度”变化。我已经尝试使用两个属性,一个用于宽度,一个用于高度,但是行为保持不变。
知道我在做什么错吗?