前回ではContextMenuのItemTemplateにMenuItemを含めると、 項目を選択してもコンテキストメニューが閉じない問題がありました。 MenuItemでなくTextBlockを使うと表示にも選択時の動作も問題ないのですが、 メニュー項目を選択したときのイベントハンドラ、もしくはCommandを設定できる 場所がありません…ないはずです。もし私の思い違いならご指摘ください。 #!XML <toolkit:ContextMenuService.ContextMenu>     <toolkit:ContextMenu ItemsSource=”{Binding MenuItems}” IsZoomEnabled=”False”>         <toolkit:ContextMenu.ItemTemplate>             <DataTemplate>                 <TextBlock Text=”{Binding Text}”/>             </DataTemplate>         </toolkit:ContextMenu.ItemTemplate>     </toolkit:ContextMenu> </toolkit:ContextMenuService.ContextMenu>Read More →

前回の続きです。 MenuItemのIEnumerableをContextMenuのItemsSourceに バインドすることで一応狙った通りに動作したのですが、 ViewModelにコントロールのMenuItemが入るのはどうも気持ち悪いので、 違う方法を考えてみます。 まず、メニュー項目を定義したPOCO(ContextMenuItemDefinitionクラス)の IEnumerableをContextMenuのItemsSourceにバインドします。 ContextMenuItemDefinitionクラスは、とりあえず項目名(Text)を定義しておきます。 #!C# public partial class MainPage : PhoneApplicationPage { public MainPage() { InitializeComponent();Read More →

Windows Phone ToolkitのContextMenuのサンプルコードでは #!XML <toolkit:ContextMenuService.ContextMenu> <toolkit:ContextMenu> <toolkit:MenuItem Header=”Item1″/> <toolkit:MenuItem Header=”Item2″/> <toolkit:MenuItem Header=”Item3″/> </toolkit:ContextMenu> </toolkit:ContextMenuService.ContextMenu> というように、MenuItemで明示的にメニュー項目を定義している場合をよく見ます。 今回、以下の条件を満たすためにContextMenuのItemsSourceを使う方法を試していましたが、 すっかりはまっていたので、その過程をまとめてみます。 ListBoxの各要素をTap&Holdすることでコンテキストメニューを表示させる 複数の画面から利用されるため、ListBoxと付随するコントロールをUserControlとしてまとめる コンテキストメニューを画面によって変更する必要があるRead More →

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 iconRead More →

Expression Blend 4のSketchFlow、標準ではWPFとSilverlightしか対応していません。 Windows Phone 7のSketchFlowは、こちらのサイトで配布されているテンプレートをインストールすると利用できます。 Using SketchFlow for Windows Phone Prototyping インストール方法は"How to install the template"に書かれているように、 ダウンロードしたZIPファイルをドキュメントフォルダで展開するだけです。 その前にブロックの解除をお忘れなく。 Blendを起動すると以下のようにWindowsRead More →

このサイトの構築ではまったのでメモ このブログはBlog Engine.NETを使っています。 データはSQL CE4.0に保存するように、setup/SQL_CE/ReadMe.txtに書かれたように ‘%ProgramFiles(x86)%\Microsoft SQL Server CompactEdition\v4.0\Private’からDLLを/binにコピー SQL_CE_for_ASP.NET_4.0_Web.ConfigをWeb.configとしてコピー BlogEngine.sdfをApp_Dataフォルダにコピー と手順を踏んだのですが、WebMatrixでは動作したのに、ホスティング先のExpressWebでは動作せず…。 エラーの原因を調べた結果、binフォルダに配置したSQL CE 4.0のDLL(System.Data.SqlServerCe.dll)が 読み込めていないようだったので、以下の設定をWeb.Configに入れたところ動作するようになりました。 <runtime> <assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″> <dependentAssembly> <assemblyIdentityRead More →

Windows Phone 7(WP7)のアプリ開発を始めようと2011年3月頃から取り組み始めました。 今は7月のマーケットプレースへの登録を目指して、アプリ開発を進めています。 アプリの開発を進めるなか、いろいろと試したこと、調べたことをOneNoteに記録してきましたが、 それを公開された形でまとめてみようかと思い立ちました。 このサイトでは、WP7のアプリ開発を中心に、いろいろと勉強したこと、試してみたこと、 やってみたことをまとめて、公開していきます。1週間に数回は更新していければと思いますが、 無理のないペースで地道にやっていきます。 よろしくお願いします。