ウィンドウの位置をBindingで設定しても値の更新が反映されない
Livetを使ってデスクトップアクセサリのようなものを作っているのですが、ViewModel側からウィンドウの位置・サイズを変えたくて以下のような記述をXAMLに書きました。
<Window x:Class="LivetWPFApplication1.Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:l="http://schemas.livet-mvvm.net/2011/wpf"
xmlns:vm="clr-namespace:LivetWPFApplication1.ViewModels"
MinWidth="{Binding Width}" MinHeight="{Binding Height}"
MaxWidth="{Binding Width}" MaxHeight="{Binding Height}"
Left="{Binding Left}" Top="{Binding Top}">
...
</Window>
※Top, Left, Width, Heightの各プロパティはlpropスニペットでdouble型で作成しています
これでWidthやHeightは上手くいったのですが、LeftとTopの更新が反映されません。
ViewModelのコンストラクタ内で設定した値は効いているようですが、別途バインドしたコントロールから変更したり、LivetのViewModelテンプレートにあるInitialize()
内で変更したりしてもウィンドウの位置が変化しません。
(あるいはウィンドウ位置の操作にはMessengerを使うべきなのでしょうか?)