BindingMode.Defaultに注意する
About / Why
Bindingを設定する際に、Bindingによって管理される値が、変更される方向をBinding.Modeプロパティによって設定することができます。Bindingされた片側の変更のみを適用する場合にはOneWayを、両側からの変更を適用するにはTwoWayを利用します。
このとき、Binding.Modeプロパティは初期値がDefaultとなっています。DefaultはBindingされる値の種類によって、適切なBindingModeに自動的に切り替えられるように設定する値です。一般的な値型の値が与えられている場合には、DefaultはTwoWayとなりますが、そうでない場合があります。たとえばFileInfo型の値などは、DefaultのときにTwoWayが設定されないことを確認しています(.Net4.5時点)。
与えられる値の型やその用途が明確になっている場合には、BindingModeをOneWayないしTwoWayなどに任意に設定するほうが、不具合が発生しにくい、ということです。Defaultの値がTwoWayだと思い込んで実装を進めると、ある値がDefault設定によってOneWayに設定された際に、その不具合の発見が遅れる可能性があるためです。