WindowsPhone7

NotifyOnValidationErrorBehavior修正

先日公開したNotifyOnValidationErrorBehaviorクラスだが、複数のコントロールがそれぞれ違うBrushを使っていると対応できない。(テストしていないことがばればれだ)なので、Controlに対応するBrushを格納する辞書を利用するように修正してみた。 NotifyOnVa…

プログラミング WindowsPhone

プログラミングWindows Phone (MSDNプログラミングシリーズ)作者: 高橋忍出版社/メーカー: 日経BP社発売日: 2011/10/06メディア: 単行本購入: 2人 クリック: 264回この商品を含むブログ (28件) を見る 昨日届いた。 日系BP社の技術書って「取りあえず出版し…

Mangoで解決されていたステルスSSIDネットワークへの接続

HTC HD7を購入して驚いたのはWindowsPhoneがステルスESS-IDのようなビーコン信号を出さない無線LANに接続できないことだった。※なので諦めて自宅の無線LANの設定を変えていたのだが、"Mango"つまりWindows Phone 7.5のRTMではとうに解消されているらしい。 W…

INotifyDataErrorInfoメモ

以下はまだメモ。後でもう少しちゃんとまとめる。INotifyDataErrorInfoはSilverlight 4で追加された新しいバリデーションメカニズムのためのインタフェースであり、それまでの標準的なバリデーションでは困難だった、・一度の検証で複数のエラー返すことがで…

自作ビヘイビアを作ろう その2

せっかくなのでよく使いそうなビヘイビアをもう一つ書いてみた。 NotifyOnValidationErrorBehavior クラス public class NotifyOnValidationErrorBehavior : Behavior<FrameworkElement> { private static readonly Brush _errorBrush = new SolidColorBrush(Colors.Red); priv</frameworkelement>…

自作ビヘイビアを作ろう

Blend4でプログラミングできる部品として使うビヘイビア。組込みのものを使うのは勿論良いのだが、作るのが非常に簡単なので自分の欲しいビヘイビアを思いついたらばんばん作って良いと思う。以下、ビヘイビアを作る手順。 System.Windows.Interactivity.Beh…

生成したViewModelとバリデーション その4

バリデート属性の型をPropertyDeclで指定して、それを元にプロパティに属性を記述する方法にはちょっと無理があった 例)必須で尚かつ、桁数が20桁以内であること [RequiredAttribute( ErrorMessage="名前は必須です" )] [StringLengthAttribute(20)] public …

生成したViewModelとバリデーション その2

さて属性ベースのバリデーションとだが、バリデーションに使う属性はSystem.ComponentModel.DataAnnotationsネームスペース下に既に存在しており、基本的なバリデーションはこれを利用することで殆ど事足りてしまうだろう。 System.ComponentModel.DataAnnot…

生成したViewModelとバリデーション

今までのおさらいになるが、T4 Templateと属性のおかげで、簡単な属性をメタデータとして与えることでフル装備のViewModelを簡単に自動生成できるようになった。 MyViewModel.cs (メタデータを設定する生成元) using System; using Mandarine.MVVM.Annotatio…

MessageBoxの表示結果でコマンドを実行する処理をBlend 4から実装する

昨日はExpression Blend 4でMessageBoxを表示するコマンドを、組込みのビヘイビアである EventTriggerとそのアクションであるInvokeCommandActionを使って実装した。では、以下のようなよくある処理は同様の方法で可能だろうか。1. MessageBoxを表示する 2. …

MessageBoxの表示をBlend 4から実装する

System.Windows.MessageBoxはXAMLではサポートしていないので通常はコードビハインドから書く。 コードビハインドに書くMessageBox Page1.xaml.cs (抜粋) private void button_Click(object sender,RoutedEventArgs e) { MessageBoxResult result= MessageBo…

ViewModelにバリデーションを組込む

MVVMに直接は関係ないかもしれないが、GUIアプリケーションを書く場合にはスマートなバリデーションは絶対に必要だ。WindowsPhone7でのバリデーションは基本的には例外が投じられた際に発生するBindingValidationErrorイベントをコードビハインドなどで捕捉…

Windows Phone SDK 7.1 RTW

先日正式版となった"Windows Phone 7.5"だが、SDKも7.1で正式にRTWとなってアップされた。ダウンロード詳細 Windows Phone SDK 7.1 - Microsoft Download Center今までインストールしてあったSDK RC(日本語)をアンインストールする必要がある。なお、RCの時…

Mangoは来たが..

HTCの端末の1割のユーザに対してMangoの配布が開始されたらしい。Windows Phone 7.5 “Mango” update begins早速自宅でHTC HD7を接続してZune起動、デバイスの更新を確認してみた。 おお、ビルド7720ってことはRTM? でも "ISV beta"ってあるしどういうことだ…

PhoneApplicationPageを使わずページ遷移する

Windows Phone 7でのXAMLページの遷移、通常であればPhoneApplicationPageのコンテキストで以下のように書くだろう。 PhoneApplicationPage.NavigationServiceプロパティを使う NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative)); これ…

謎のTypeLoadException その2

自身で定義したViewModelにIDataErrorInfoを実装すると発生するTypeLoadExceptionだが、結局原因が分らない。そもそもSystem.ComponentModel.IDataErrorInfoは参照できるものの、元々WPFで使用してきたインタフェースでありWindows Phone 7のProfileでは使え…

謎のTypeLoadException

ViewModel生成のテストをしているのだが、原因不明のエラーに悩まされている。 以下のXAMLにより直接ViewModelのインスタンスを生成してビューのDataContextにセットしているのだが、 Page1.xaml(抜粋) このXAMLをVisual Studio 2010のデザイナで読ませると…

WPFとSilverlight

WindowsPhone7の一般的なアプリケーションはSilverlightベースで開発するのだが、このSilverlightが、特にフレームワーク上のSilverlightとWPFの差が門外漢には良く解らない。WPF との互換性 - Silverlight SilverlightはWPFのサブセットだと理解していたの…

Windows Phone 7とコマンドバインディング

WPF/SilverlightはデータバインディングによりViewとViewModel、ViewModelとModel、互いの疎結合を保ったままでデータの同期を可能にしている。データバインディングそのものは古のWindowsFormsから実装されており知っているのだが、WPF/SilverlightはMVVMを…

只では転ばない

DevQuizのスライドパズルは見事に玉砕した訳だが、その解答をC#で書くのには理由があった。 一つは暫く触っていなかった間にバージョンが上がってより複雑となったC#言語に慣れるためで、もう一つはVisual Studio 2010のプロファイリング機能を試して見たか…

エミュレータの状態ファイルが壊れる

どういうタイミングなのかまだ再現性が無いが、Windows Phone 7(SDK 7.1 RC)のエミュレータを起動すると以下のようなメッセージが出て止まってしまう現象が発生している。 該当のファイルを削除すればまた初期状態から起動できるのだが、何度か発生している…

Blend 4いいかも

XAMLが出た時は、「ああ、また違う語彙のXMLを覚えなきゃならないのか」と辟易した記憶がある。 そんな私だからExpression Blendが出た当初、ちょっと使ってみた所かなりバギーだったこともあって完全に見切ったツールだった。しかしバージョン4となった今使…

案の定

仕事場のPCのExpression Blend 4のバージョンだが、やはり指摘されている通り古いままだった。なので、早速リンクで紹介されているのと同様にExpression Blend 4の更新を実施した。 Windows Phone SDK Releace Candidateが公開されました。 « とある個人事業…

Windows PhoneとMVVMパターン

WPFアプリケーションは我々が実装設計で最もお世話になっているアーキテクチャ・パターンである「MVC(Model View Controler)」パターンから派生した、「MVVM(Model View Viwmodel」パターンで作ることが推奨されている。 MVVMパターンはビュー(V)とビューモ…

これだから...

Windows phone SDK 7.1 RC1日本語版環境だが、無事上手く構築できた。調子にのって仕事場の環境も同様に構築したはずなのだが、インストールを終えて動作確認してみるとExpression Blend 4でWindows Phone 7のプロジェクトを開くとこのようにスキンとスタイ…

Windows Phone SDK 7.1 RC

前回の"Beta2 Refresh"ではENU(英語版)だったが、今回はRC(Release Candidate)になり日本語版もインストールできるようになった。ダウンロード詳細 Windows Phone SDK 7.1 RC (リリース候補) - Microsoft download center毎度のことだが、以前のバージョンと…

任意のページに遷移する

例えばボタン(btnNavigate)が押下された際にPage2.xamlで構成されるページに遷移する場合、 this.btnNavigate.Click += (sender, e) => { NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative)); }; androidみたいにインテントの生成もActi…

スタートページを変更する

新規プロジェクトテンプレートから作成したアプリケーションだと、スタートページはMainPage.xamlに設定されているが、以下のようにプロジェクトに複数のページが用意されている場合 このようなケースで明示的にスタートページを指定したい場合、プロジェク…

WPFとSilverlight

WindowsPhone7の開発周りを調べていると、.NET Framework、C#は勿論のことWPF(Windows Presentation Foundation)やSilverlightに言及した記事が多いことに気がつく。これは両技術をやってきた開発者であれば当たり前な話で、WindowsPhone7のアプリケーション…

WPConnect

先日紹介したMango以前のカメラ機能を利用するコードだが、実はそのままではデバッグが上手く動かなかった。 具体的には、CameraCaptureTask#showを実行してもカメラアプリが起動しないのだ。 CameraCaptureTask camera = new CameraCaptureTask(); camera.C…