No more Death March

あるSEのチラシの裏 C# WPF

WPF依存関係プロパティのバインドモード初期値

依存関係プロパティをバインドする際にModeを省略した場合、

個々の依存関係プロパティ毎に選択されるModeの既定値は異なるとのこと。

 

ちなみにTextBoxはTwoWayです。

 

Modeを省略してTextBoxにバインドするのに慣れて、

ユーザーコントロールを自作して同じような記述でバインドするとプロパティが連動せずあれ???となりました。

 

自作の依存関係プロパティでバインドする時のModeの既定値を変更するには、 DependencyPropertyのRegisterメソッドでプロパティを登録する時に、

メタデータにFrameworkPropertyMetadataクラスを指定する。

このクラスのコンストラクタにModeの初期値を指定するパラメータがありました。

 

情報源は失念しましたが、この辺りのことを調べているときに、

Modeを初期化するとフレームワークのバージョンアップ?でデフォルトの挙動が変わってしまった。という記事も見かけたような気がしました。

 

Modeは省略しないで書くようにした方が良いかもしれませんね。