2011-10-01から1ヶ月間の記事一覧

NLog Target Extension(その3)

NLog.config <nlog> <extensions> <add assembly="Mandarine"/> </extensions> <targets> <target name="target1" type="IsolatedStorage" layout="${longdate} ${callsite} ${level} ${message}"/> </targets> <rules> <logger name="*" minlevel="Debug" writeTo="target1" /> </rules> </nlog> #if !WINDOWS_PHONE strin…

NLog Target Extension(その2)

ソースコードを調べたたのだが(やっぱりソースコードが無いとね)、Windows Phoneでは要素の要素 assembly属性には対応していないようだ。 無念。 NLog.Config.XmlLoggingConfiguration.cs #if !WINDOWS_PHONE : string assemblyName = addElement.GetOptiona…

NLog Target Extension

NLogのTargetをIsolatedStorageFileにしたくて調べていたのだが、中々上手く行かん。 他のアセンブリからターゲットクラスを呼び出す時点でエラーが出てしまう。 NLog.config <nlog> <extensions> <add assembly="Mandarine"/> </extensions> <targets> </targets></nlog>

NLog

Androidで言うところのLogCatと同じようにアプリケーションのログを採取したいがWindows Phoneにはそのようなものは無いようだ。 ASP.NETやWindowsFormsではLog4Netを使用していたが、Log4Netはちょっと重めなのでもう少し軽くて簡単に使えるロガーを探して…

設定画面 その4

あとは必要なイベント発生時にこれらのコマンドを明示的に実行すればOKだ。 次は実際の画面と組合わせて処理を完成させてみよう。 今回は今までの仕上げとして、実際に画面を用意して設定値をロード/セーブしてみよう。 設定画面 動作確認するだけなので、以…

呼び出し側のアプリケーションIDを確定できません。

前のエントリで設定値を保存するコマンドクラスを書いていたが、それをBlend4のInvokeCommandActionビヘイビアでパインドして使おうとしたのだが、Visual Studio 2010では何も問題が無いのにBlend4で以下のエラーが出ることが解った。エラーの発生元がXAMLだ…

設定画面 その3

さて、設定画面の設定値をロード/セーブする処理だが昨日はViewModelに直接組込んで使う例を考えてみた。今日はViewModelには組込まず、コマンドとして実装することを考えてみよう。まずはIsolatedStorageSettingsのIO処理を組込んだコマンドクラスを作ろう…

設定画面 その2

とシンプルな構成。あとはAppSettingsクラスを好きな画面のコントロールにデータバインドするだけと簡単だ。 殆どがルーティーンなので、これも他のコード同様にもう少しスマートに書けないかを考えてみよう。 ということで考えて見たが、すぐに出てくるのは…

椎名林檎

NHKの連続TV小説「カーネーション」で曲が使われていて急に聴きたくなった。 秋になると聴きたくなるのはどうしてだろう。 哀愁じみた曲が多いから? あと、都内の電車で聴くのにもマッチしているように思う。 三文ゴシップアーティスト: 椎名林檎出版社/メー…

something problem is comming

Google GALAXY NexusAndroid 4.0とGALAXY Nexusの発表後、Android SDKとその周辺のソフトウェアも直ちにアップデートされた。 Android SDK | Android Developers機能の追加、変更点に関しては著名なサイトや開発者の方々が早々に訳しているので触れないが、 …

設定画面

環境や各種諸元値のオプションを設定する画面はモバイルアプリケーションでよく使われる。なのでAndroidプラットホームなどはそのための専用のActivityクラスであるPreferenceActivityを提供しており、データの永続先として使用するXMLと共に使うことで簡単…

パスタ

近所に安くて美味しいパスタを食わせる店がある。いや、あった。 久しぶりに外で晩飯でも食べようかと妻と一緒に立ち寄ったが、いろいろとがっかりした。 小盛りのパスタを「これが一人前です」と売っている。 レギュラーサイズにするには¥500追加になる 底…

ToggleSwitch.Contentのローカライズ

提供されているリソースを上書きしてデータテンプレートを使ってかなり面倒なことをやるのかな、と思ったのだが存外簡単だった。 ローカライズ用のリソースを用意する 状態二値である"On"と"Off"をキーに持つリソースを用意する。取り敢えずインバリアントと…

ToggleSwitch

WindowsPhone7の実機を見た後にVisualStudioで実際の画面を作ろうとしたときに不満なのは、あるコントロールが無いことだ。 ToggleSwitch 動作的には元々あるToggleButtonやOn/Offだけを表現するのであればCheckBoxで十分のようにも思うのだが、プラットホー…

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…

Babel Projectでローカライズ後のフォント選択

Eclipseを最新版にした後は暫くそのままで使って、その後Babel Projectによりローカライズを行うのが通例となっている。Eclipse Babel Project Downloads ああありがたや〜、となるのだが、この後Eclipseを再起動すると何かフォントが違う。私はJava2の頃か…

文字列リソースのローカライズ

そもそも元々「埋め込みリソース」という分類があるのにResourceというのは何の目的に使うのだろう。 "Resource"というのは"Linked Resource"であり、埋め込みリソースがバイナリリソースになるのに対して、こちらはそのままの形でアセンブリ内に保存される…

ビルドアクション

Visual Studio 2010にWindows Phone 7 SDKをインストール使っていると「ファイル」の「プロパティシート」に知らない項目が増えていることが気がつく。従来からあったコンパイル、コンテンツ、埋め込まれたリソースは良いが、その後の Resource CodeAnalysis…

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

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

巨星墜つ

アップル創業者であるスティーブ・ジョブズ氏が昨日、すい臓がんの長い闘病生活の末に亡くなった。享年56。それにしても癌というのは容赦が無い。 彼は間違い無くこの世界に最も貢献した1人であったが、そんな彼ですら還暦まで生かしておいてくれなかった。…

生成した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イベントをコードビハインドなどで捕捉…