XAML 系のプラットフォームで開発するときによくお世話になるデータバインディングですが、個人的に開発中にはまらないために気を付けていることを紹介しようと思います。
間違えないために
ハマらないために気を付けることは、Visual Studio に書いてもらうことです。これが一番大事です。人がプログラムを書くから間違えるので、なるべくツールに書いてもらいましょう。
データバインディングのパスでも同じで Visual Studio が DataContext の型を認識できるようにするとインテリセンスが効きます。Visual Studio に書いてもらうことが出来ます。
例えば Windows Template Studio で適当に新規作成したプロジェクトの DataTemplate の Binding でインテリセンス出してみるとこんな感じになりました。
こんな状態だと、心の目でバインドのパス書かないといけないですね。これはよくないです。
こうならないためにデザイナーに DataContext の型を教えてあげる必要があります。
DataTemplate の場合
DataTemplate の場合は DataType に型を指定するとデザイナーが型を認識してインテリセンスでプロパティ名を出してくれるようになります。
DataTemplate 以外の場合
d:DataContext
で型を指定してやるとインテリセンスがきくようになります。
その他
ライブビジュアルツリーとライブプロパティエクスプローラー
一応中身見れる。
ReactiveProperty を使ってるときに間違えて .Value
を忘れたものを見ると、こんな感じに見えます。ReactiveProperty の ToString の結果には型名がないのでちょっとわかりにくいですが…。
データバインディングのパスを間違えたら
それでも間違えることはあります。例えば Title とうつところを以下のように TiTle としてしまった場合…
最新の Visual Studio だとこんな風にエラーがあると教えてくれます。
前まではデバッグ実行時の出力ウィンドウに他のデバッグログに混じってこっそり出てたメッセージですが、これでとても見やすくなりました。
ただ、これは Xamarin.Forms には来てないかな?
まとめ
色々便利機能はありますが、基本的にプログラムは人がタイプすると間違えるのでインテリセンスを出すようにひと手間かけてから書くとハマる可能性が減ります。その対策をしたうえで、もしハマってしまった場合はデバッグ系の機能に頼りましょう。
以上です。