绑定窗口大小

时间:2018-10-21 18:33:53

标签: c# wpf mvvm data-binding

我正在尝试使用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属性。如果我删除宽度绑定,它将再次适用于高度。因此,似乎无法识别第二个“宽度”或“高度”变化。我已经尝试使用两个属性,一个用于宽度,一个用于高度,但是行为保持不变。

知道我在做什么错吗?

0 个答案:

没有答案