BT

WPF/Silverlightのデータバインディング問題を修正する

| 作者: Jonathan Allen フォローする 595 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2010年7月14日. 推定読書時間: 2 分 |

原文(投稿日:2010/07/04)へのリンク

WPFのデータは、シンプルですばらしい。Visual Basic 3以来、マイクロソフトは、柔軟性と強固性、そして利用容易性を魔法の組み合わせを模索してきた。そしてWPFは、完全ではないが、以前のそれよりもはるかにすばらしい。しかし残念ながら、故障モデルは諸刃の剣である。アプリケーションクラッシュの例外を投げる代わりに、バインディングエラーは、こっそりトレースリスナに書き込む。これは、根本原因を見つけるのが信じられないほど難しくなる。

WPFのデータバインディングに関する主なドキュメントは、シンプルなタイトルのデータ バインディングの概要である。デバッグやトラブルシュートするまでは、なにも提供されないが、WPFとSilverlight開発者は、必ず読むべきである。全体のセクションは、文字通りひとつのセンテンスで構成されている。

デバッグの仕組み

バインディング関連オブジェクトのPresentationTraceSources.TraceLevel添付プロパティをセットすると、バインディングに関するステータスを取得することができます。

Karl Shifflett氏は、データバインディングのトレースの読み方を提供しているが、彼のアドバイスは、チェックするものが明確であるか、DataContextに正しいオブジェクトが含まれていないことが前提になっている。また、しばしばSilverlightは、IDEの外で実行されるため、常に使える訳ではない。

幸運なことに、これらを少し簡単にする2つのサードパーティ製品が存在している。Cory Plotts氏のSnoopは、あらゆる.NET 3.5と4.0のWPFアプリケーションにアタッチすることができる。一度読み込むと、コントロールツリー上にプロパティの値や、あらゆるデータバインディングエラーなどの詳細な情報が提供される。Snoop 2.6は、Microsoft Public License下で、CodePlex上で提供されている。

もうひとつのツールは、Karl Shifflett氏のGlimpseである。このツールは、Silverlightアプリケーションにはアタッチできず、これをコンパイルしなくてはいけない。起動すると、フローティングウィンドウを通じて、未ハンドルのアプリケーションとデータバインドの例外をユーザに通知する。Glimpse for Silverlightは、Karl氏の個人ブログからダウンロードすることができる。

しばしば引用されるテクニックは、ダミー値コンバータを追加して、その中にブレイクポイントをセットすることだ。Marlon Grech氏は さらに一歩進んだデバッグコンバーターの書き方を公開している。コードにbreakステートメントをハードコードすることによって、手動でブレイクポイントをセットする必要がない。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT