バインド可能なApplicationBar

Posted by 技術ブログ by Strawhat.net on Tuesday, June 14, 2011

2011/4/30の開発メモから WP7の標準のApplicationBarはSilverlightの要素でない(FrameworkElementでない)ため、 選択されたときの処理をViewModelのコマンドではなく、Viewのコードビハインドに記述する必要があります。

今開発しているWP7アプリはMVVMパターンにできる限り沿うようにしているため、 なんとかViewModelのコマンドとして処理を記述できないか調べていたのですが、ここに バインド可能なApplicationBarのラッパーが公開されていました。

How to have binding on the ApplicationBar

ApplicationBarを持ったラッパークラスにDependencyPropertyを持たせることで、 プロパティをバインド可能にするアイデアです。

これを使ってViewModelのコマンドでメニュー選択時の処理を記述できるようになったのですが、 Blendで"Cannot clear the icon while in a list"というエラーが表示されてしまいます。 この問題はまだ解決できていません。

Blendのエラーのスクリーンショット

今のところこのエラーを放置していますが、いずれ時間をとって調べようと思います。