Ktouth Brand. on Web

け〜くんこと K.Ktouth のだらだらした日常と突発的に作るプログラムや読み物とかの雑多サイト



[2012年02月29日]

素直に内部クラス作っとけって話

2012年02月29日 20:09更新 筆者:K.Ktouth

まだまだ悩んでます(ぉぃ

前回プロパティを監視する方法として以下のようなことを考えて「むずい」とか思っていたんですが。

  • INotifyPropertyChanged インターフェイス → FrameworkElement 以下のクラスは実装していないので使えない
  • イベントを使って変更をトラップする → プロパティ値次第ではイベントが発生しない
  • new Binding("....") { Mode = BindingMode.OneWayToSource } を使ってバインディング経由で値変更を受け取る → 受け取ることが出来るが、バインディングを上書きされる可能性がある

考えた方法全てに問題があったので無理……とか考えたわけですが。
アホですね。

バインディングの主従を逆にするだけでいいって事に今更ながら気づきました^^; わざわざ逆方向のバインディングを使わなくてもいいやんって話です。本当にアホですね(笑)
値を受け取るための内部クラスを DependencyObject から派生して作成、Font周りの依存関係プロパティを実装、バインディングソースに目標の FrameworkElement を指定して、各プロパティを連結するだけで意図通りに成功。
受信用に内部クラスを作る手間が増えましたが、面倒くさかった認識可能なクラスごとのプロパティ取得がバインディング任せに出来るのでむしろ総合的には手間は減らせたかも。

にしても。
DependencyObejct の変更通知ってどうやってやってんだろ……?

本日のリンク元
その他のリンク元
検索