WindowsPhone8からWindows8.1 universalにコードをコピペしたらクソはまった話
愚痴です。
UserControlを作ってそのプロパティにデータをbindすることはたくさんあると思いますが、WindowsPhone8用に書いてたプロジェクトからWindows 8.1 Universal (Phone/Windows)のプロジェクトにコードをコピペしたらドはまりした愚痴です。
PropertyMetadataのコンストラクタのオーバーロードが、PhoneとUniversalで違っているっぽいです。MSDNのページには記載が見当たりませんが、PropertyChangedCallback 1引数のみのコンストラクタがUniversalには無くなっています。
Windows Phone 8 project (VS2012)
Windows 8.1 universal project (VS2013)
なんやこれ。
もともとWP8アプリで2 of 3のコンストラクタを使っていたぼくは思いっきりコードをコピペして2時間くらい悩んでいたのですが、1引数で渡していたCallbackがいつのまにかデフォルト値になっていただけだったのでした。せめてPropertyChangedCallbackをintにキャストした段階でException投げてくれよ。。。。
つらかった。
真に型安全な世界を探して生きていきたいです。