Xaml – Private setなのにTwoWay Bindingができる(C# WPF)

C#
public ReactiveProperty<bool> IsSelected { get; private set; } 

にしたプロパティがXamlにTwoWayでBindできてしまった。

<CheckBox IsChecked="{Binding IsSelected.Value, Mode=TwoWay}" />

挙句にチェックボックスのon, offでsetterも普通に動く始末。
これ不味いんじゃないか?
というかSetterを取っ払っても動くんだけど?

public ReactiveProperty<bool> IsSelected { get; } 

xamlにBindする時は基本的にSetterを付けているので問題にはならなそうだけど、挙動が怪しい。

.NET 4.5 をターゲットにした時のみ、private setter プロパティに TwoWay Binding できる謎 – CAT EARS

こんな記事を見つけた。
.NET4.5をターゲットにした時のみこういう挙動と書かれている。

でも私のターゲットはv4.7.2なのよね。

<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>

とりあえずは問題にならないのでスルーするけど、気になる。

コメント