かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Prism

Prism.Forms でプラットフォーム固有処理を呼び分ける方法

Xamarin.Forms にも標準で DependencyService という機能があるんですが、こいつよりも柔軟な素敵な機能が Prism.Forms には提供されています。 IPlatformInitializer それは IPlatformInitializer です!これは、Prism.Forms のDIコンテナへのインスタンス…

Prism.FormsでAutofacを使ってみよう

Xamarin Studioベースで話を進めます。(Visual Studioでもだいたい同じになると思うけど) まずForms Appを新規作成してPCLで作ります。 NuGetから以下のパッケージを追加します。 Prism.Autofac.Forms Views名前空間を作って、そこにMainPage.xamlを作成し…

かずきのXamarin.Forms入門のKindle版だしました(Prismもあるよ)

先日SlideShareに公開したXamarin.FormsのPDFですが Xamarin.forms入門 from 一希 大田 www.slideshare.net こちらは、SlideShareにログインすると無料でダウンロードできます。 それに加えて、Kindleで販売も始めました。こちらはKindleで見たい人向けです1…

Xamarin.Forms入門のPDF作りました(Prismもあるよ)

SlideShareでログインしてダウンロードできるようにしています。是非ダウンロードしてみてください!200ページちょっとあります。 Xamarin.forms入門 from 一希 大田 www.slideshare.net 目次 1 はじめに 1.1 ターゲットプラットフォーム 1.2 Xamarin.Forms…

Xamarin.FormsでPrism.Formsを使ってPCLに非対応なライブラリを使う方法

例えばMicrosoft.AzureのStorageのライブラリなんかがXamarin.AndroidとXamarin.iOSには対応してるけどPCLには対応してないといった感じです。 被害者がここに。 @chomado ウワアアあああああああああああああああああXamarin .Forms PCL の私 爆死\(^o^)/…

Xamarin.Formsでボタンの2度押しをReactivePropertyを使って抑止してみよう

お題の通りです。 こんな感じでReactiveCommandを普通に使うと連打すると2重で画面遷移したりします。 using Prism.Mvvm; using Prism.Navigation; using Reactive.Bindings; using System; namespace PrismUnityApp12.ViewModels { public class MainPageVi…

Prism.WpfでPopupWindowActionで表示した要素の中でRegionManagerを使った画面遷移がしたい

というサンプルをGitHubにあげました。 github.com 結構RegionBehaviorを使ったりBehaviorを使ったり頑張ってます。 ここら辺が現実的な妥協点かもしれませんと思います。

WPFでPrismをライトウェイトに使いたい「Hello world」

WPF版Prismは使いこなすと強力です。でも使いこなすの大変です。ハイ。学習コストかけてられないし、学習コストかけたからといって1個のアプリ開発で、そのコストを回収できるかもわかりませんですしね。 ということで、なるべくライトにPrismを使ってみたい…

Prism.Wpfで子WindowでRegionを使う方法

アップデート もうちょっと頑張ったサンプルをGitHubに公開しました。 github.com 古い内容 PopupWindowActionで表示するWindow内で画面遷移したい!とかいうことがあると使えないんですよね。ということで解決策として、RegionManagerを新しく作って、それ…

Xamarin版PrismでViewとViewModelの紐づけルールを変える

PrismはデフォルトでViews名前空間にあるViewとViewModels名前空間にあるViewModelを紐づける機能を持っています。この機能を有効化するには、PageのXAMLに以下の2行を追加します。 xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms" prism:View…

JXUGC 13回で発表してきました #JXUG

「Prism.Formsについて」というタイトルで、発表してきました。 Prism.Formsについて from 一希 大田 www.slideshare.net ライブコーディング失敗しなくてよかった。

Xamarin版PrismのDependencyServiceサポート機能

Prism.Formsは、基本的にUnity(DIコンテナのほう)を使ってます。 こいつを使うとインスタンスの組み立てとかをお任せ出来るので楽ちんなのです! Prism.Formsでは、そんなUnityの機能を拡張して、DependencyServiceから取得するインスタンスを自動でインジェ…

Prism.WpfのApp.configによるModuleCatalogの構成の仕方をPrism自習用リポジトリに追加しました

Prism Template Packを使うと簡単にApp.configによるModuleCatalogの構成ができるということで、今まで書いてなかったそこの部分についてPrism自習用リポジトリに追記しました。 github.com

Xamarin版Prismの次のバージョンでの変更点

Xamarin版PrismのPrism.Formsですが、Xamarin Evolve 2016が終わってから更新頻度が上がってます。 次のリリースに向けて動き出してるって感じですね。 ただ、5月7日にPrism.Formsについてセッションをする身としては、次のバージョンがいつ出るのかドキドキ…

PrismのApp.configのエディタ

Prismのテンプレートパッケージを入れるとApp.configのエディタが追加されます。 visualstudiogallery.msdn.microsoft.com App.cinfigを右クリックするとOpen with Prism Module Editorというのが表示されます。 これでApp.configを開くと以下のようにモジュ…

Xamarin.Forms + Prism.Formsでダイアログを出す

Prism.Formsでは、IPageDialogServiceというインターフェースが提供されていて、ダイアログの表示もばっちりViewModelで出来るようになっています。 IPageDialogServiceには、DisplayAlertメソッドと、DisplayActionSheetメソッドが定義されています。Displa…

Xamarin.Forms + Prism.FormsでMasterDetailPageを使うには

ytabuchi.hatenablog.com 上記記事をPrism.Formsを使ってやるとどうなるだろうという奴です。 まず、Prism MasterDetailPage (Forms)でRootPageという名前のページを作ります。 続けて、メニュー部を担当するMenuPageをPrism ContentPage (Forms)で作ります…

Xamarin.Forms + Prism.Formsで画面遷移DeepDive

Prism.Formsは、地味にネストした画面遷移みたいなのをサポートしています。 画面遷移のINavigationService#Navigateメソッドに渡すURLに"/HogePage/FugaPage/BarPage?id=10"みたいに/で区切ってページ指定が出来ます。 最初が/だと絶対パスになるっぽくて画…

Xamarin.Forms + Prism.FormsのMVVMの基本的なクラス

変更通知用のINotifyPropertyChangedとコマンド用のICommand実装クラスが提供されています。 INotifyPropertyChangedの実装クラス BindableBaseクラスになります。SetPropertyというメソッドがあって、変更通知プロパティを以下のように定義できるようになっ…

Xamarin.Forms + Prism.FormsでViewModelから画面遷移をする

Prism.Formsのプロジェクトを新規作成します。 Prism ContentPageを1つ追加します。NextPageという名前で作りました。こんな感じで。

Xamarin.Forms + Prism.FormsでVとVMを結びつける

Prism.Formsを使えば簡単にMVVMのViewのBindingContextにViewModelを設定できます。Hello worldでもやったっちゃやりましたが、もう一度改めてやってみようと思います。 VとVMを紐づけるには、ViewModelLocatorというクラスを使用します。ViewModelLocatorク…

Xamarin.Forms + Prism.FormsでViewの登録

Prism.Formsを使ってViewを作成するには、Views名前空間にXAMLの形式で作るのが素直でいい感じです。 Viewは、利用可能にするには、Views名前空間に作成するのに加えてAppクラスのRegisterTypesメソッドでUnityのコンテナに登録する必要があります。この登録…

XamarinでPrismを使ったHello world

PrismってXamarinにも対応してるんですよね(Previewですけど)ということで、Hello worldしながら、基本的な手順をやっていこうと思います。 プロジェクトの新規作成 まず、プロジェクトの新規作成を行います。Cross-Platform/Blank App (Xamarin.Forms Por…

PrismのViewModelでイベントの購読解除などの後始末をするタイミング

PrismのViewModelには画面遷移してきたタイミングで呼ばれるOnNavigatedToと画面から離れるときやサスペンド時に呼ばれるOnNavigatingFromメソッドがあります。ページが有効な間はイベントを購読したいというケースでは、OnNavigatedToでイベントの購読を行…

UWPでPrismを使ったプロジェクトを単体テストする

PrismUnityApplicationなんかを継承してると、単体テストに失敗します。このIssueですね。 github.com Issueにある通りAppクラスにBindableAttributeを付ければ単体テストが実行できるようになります。 using Prism.Unity.Windows; using System.Threading.T…

UWP版Prismで、ルートがFrameじゃない構成のアプリを作りたい

UWPアプリとかストアアプリって普通はWindow.Current.ContentはFrameになるのが一般的です。 ただ、SplitViewを使ったアプリとかは、SplitViewの右側にFrameを置いて、Window.Current.ContentにはMainPageを置くということをやったりします。自分で作ってる…

UWP版Prismを使うとリリースビルド時にアプリが落ちる #windev_jp

という状況です。原因は端的にいうとこれです。 blog.okazuki.jp https://connect.microsoft.com/VisualStudio/feedback/details/1925435/-windows-10-pcl-uwp-nullreferenceexception 別にPrismが悪いというわけではなくUWPからPCLを使うと起きる可能性があ…

UWP版Prismのv6.0.1が出ました

github.com 個人的にはお願いしたIssueの意を組み込んでくれたリリースなのでうれしい。

UWP版PrismのMVVM関連クラスについて書きました

基本的には前書いたやつ見てねってスタンスだけど、ValidatableBindableBaseクラスだけは新顔なので書いたよ。 github.com

UWP版PrismのDeviceGestureServiceについて書いてみました

github.com Prism.StoreAppsのころには無かったDeviceGestureServiceについて書いてみました。 あると便利な奴です。

UWP版Prismの画面遷移について書きました

github.com

UWP版PrismのHello worldを書きました

github.com さくっとね。

Universal Windows Platform版UWPのPrism.UWPがリリースされました

今朝がたPrismのUWP版がリリースされていました。 github.com Prism.StoreAppsからちょっと進化(非互換ともいう)してたりします。 とりあえずGitHubのPrism 6自習用リポジトリをベースにちょっとずつ勉強していきたいと思います。 ということでざっとどん…

Prism.WpfのドキュメントがMarkdownになりました

PDFでしかなかったPrismのWPF版のドキュメントがMarkdownになってGitHub上に放流されてました。 ドキュメントのトップはこちら。 github.com WPFのドキュメントはこちら。まだ出来立てなので、画像のリンク切れとかおこしてたりしますが、おおむね大丈夫でし…

Universal Windows Platform版PrismのPrerelease版が出ました

github.com 朝起きてみるとできてました。 NuGetじゃなくてMygetっていうのにホストされてるので、使うためにひと手間必要です。 パッケージソースの追加 以下のURLをNuGetのパッケージソースに追加します。 https://www.myget.org/F/prismprerelease/api/v3…

Prism 6.0のRegionBehaviorについて書きました

github.com

PrismのModuleの読み込み順序の制御なんかについて書きました

github.com Moduleのオンデマンド読み込みや、Moduleの依存関係の定義方法なんかを書きました。

EventAggregatorについて書きました

github.com Prism自習用のリポジトリにEventAggregatorについて書きました。

Prismのナビゲーションについて書きました

github.com

InteractionRequestについて書きました

github.com ユーザーとの対話操作を実現するためのInteractionRequestについてPrismの自習用リポジトリにサンプルとともに解説を上げました。

Prism 6.0のMVVMの基本クラスについて書きました

github.com さらっとコードだけですが。

Prism6.0自習用リポジトリにModuleの使い方くらいまで書きました

github.com 今、BootstrapperとViewModelLocatorの使いかたと、ModuleとRegionあたりくらいのさわりを書いてます。

Prism 6.0自習用リポジトリ作成しました

自習用に書き溜めていきたいと思います。 github.com

Prism 6.0がリリースされました

MSのP&PのチームからMS MVPが主体となったチームに移管されてから初のWPF版PrismであるPrism 6.0がリリースされました。今までNuGetでPrismをインストールすればよかったのが、Prism.Coreをインストールするようになっている点に注意です。 www.nuget.org リ…

Prism for UWP(仮)を見てみた

Prismの中でうごめいているUniversal Windows Platform app対応版Prismについてちょっとリポジトリをのぞいてみました。基本的に、Prism for Windows Runtimeの流れを汲む感じで、使い方に差は無さそうです。 大きな変更点 一番大きな変更点は、MvvmAppBase…

マンツーマンでPrismとReactivePropertyの説明してきました@調布

調布のカフェでマンツーマンでバトルプログラマーさんにPrismとReactivePropertyの説明をざっとしてきました。スライドを公開しておきます。 Prism + ReactiveProperty入門 from 一希 大田 www.slideshare.net メインターゲットはWindows Phone 8.1ね。

MADOSMAも出たしWindows Phone 8.1のアプリを作ろうぞ #wpjp

MADOSMAも出ました。ついでにおでコンも開催されています。これを機にWindows Phone 8.1のアプリを作ろうと考えている人も多いのではないかと思います。そこで個人的にお勧めするPrism.StoreAppsとReactivePropertyの組み合わせのとっかかりを書いてみようと…

ユニバーサルWindowsアプリでPrismとReactivePropetyを使った状態で中断処理へ対応する

Json.NET使えば意外と簡単にできました。Json.NET偉大。 ユニバーサルWindowsアプリでPrismとReactivePropetyを使った状態で中断処理へ対応する in C# for Visual Studio 2013

Prism for Windows RuntimeでFileOpenPickerを出す方法

といってもPrismは、FileOpenPickerを出す機能を提供してくれないので自前で作る必要があります。今回は、その自前で作る例として。 Windows ストアアプリでMVVMパターンでFileOpenPickerの出し方 in C#, XAML for Visual Studio 2013

SettingsFlyoutをViewModelから制御したい

SettingsFlyoutをViewModelから表示したいときにつかえるBehaviorのサンプルをコードレシピにアップしました。 MVVMパターンでSettingsFlyoutを出す in C# for Visual Studio 2013