読者です 読者をやめる 読者になる 読者になる

かずきのBlog@hatena

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

今さら入門するMVVMに必要な技術要素(Xamarin.Forms & UWP)

Model View ViewModelパターン(以下MVVMパターン)が登場して約10年になります。 ここらへんで一度MVVMを実装するうえで必要になる技術要素を振り返ってみたいと思います。 その前にMVVM MVVMは以下のWikipediaあたりでも見てください。 Model View ViewMod…

ReactiveProperty 2.0.0-pre4をリリースしました

ReactiveProperty NuGet Gallery | ReactiveProperty 2.0.0-pre4 さっきpre3リリースしましたが、バージョンアップです。 メソッド名の変更 先ほど追加したEventToReactiveCommand用のReactiveConverterとDelegateConverterクラスのConvertメソッド名をConve…

ReactiveProperty v2.0.0-pre3をリリースしました

ReactiveProperty NuGet Gallery | ReactiveProperty 2.0.0-pre3 今回は以下の変更を含んでます。 CountNotifyerのINotifyPropertyChangedの実装 CountNotifyerクラスがINotifyPropertyChangedインターフェースを実装してCountプロパティの変更通知を受け取…

MVVM系フレームワークとReactivePropertyの組み合わせのサンプルプログラムを書きました

以下の3つのMVVMライブラリと Livet MVVM Light toolkit Prism ReactiveProperty(v2系使ってます)のサンプルをコードレシピに書きました。どれも、ほぼ同じ挙動をするサンプルなので比較用にでもどうぞ。 MVVMパターンのシンプルなサンプル(Livet + Reactiv…

ReactiveProperty v1.2.0をリリースしました

先日書いた記事で、めんどくさいと思ってた部分を簡単にかけるようにしました。 MVVMでめんどくさいと思ってる部分を、個人的にどうやって緩和してるか - かずきのBlog@hatena MVVMでめんどくさいと思ってる部分を、個人的にどうやって緩和してるか - かずき…

Xamarin.FormsでMVVM Light ToolkitとReactivePropertyを使ってみた

Prism.Mvvmのほうが好みなんですが、こいつがSilverlight for Windows Phone 8をサポートしないので、SL for WP8もサポートしてる(すごいよね…)MVVM Light Toolkitを試してみました。 ViewModelLocatorの作成 SimpleIoCというDIコンテナがついてるけど、個…

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

Prism + ReactivePropertyの簡単なサンプル書きました

コードレシピにさくっと。 Prism.Mvvm + ReactiveProperty サンプル in C# for Visual Studio 2013

ReactiveProperty v1.0リリースしました

ReactiveProperty - MVVM Extensions for Rx - Download: ReactiveProperty v1.0 What's new Reactive Extensionsのバージョンを最新にあげました。 なぜv0.4からv1に上げてみたか お仕事で使ってくれてる人がいて、その人から聞いてたら結構ヘビーに使って…

Mvvm LightとPrismとで同じプログラムのサンプル書いてみました

先日作ったPrism + ReactivePropertyのカウンターアプリをMvvm Light Toolkit使って作ってみました。 Prism 5とReactiveProperty - かずきのBlog@hatena コードレシピにアップしてます。 Prism + ReactivePropertyとMVVM Light Toolkit + ReactiveProperty i…

MVVM Light toolkitのMessengerでメッセージ投げた後の結果を受け取りたい

そういう場合はMVVM Light toolkitをはじめPrismなども大体コールバックを使うようになっています。コールバックは出来るなら使いたくないということでawaitすれば結果が得られるようなものを作ってみました。 サンプルコードということで、コードレシピにコ…

C++/CLIからC#への移植

Visual Studio 11 から本気出す! WPF with C++/CLI の記事にあるC++/CLIの部分をなるべく忠実にC#に移植したというものを作ってみました。 WPF_cs.zip きっかけは以下のつぶやき。 . @ugaya40 の突込みが待たれる > "白状すればMVVMってハジメテなの。おもき…

MVVM + WCF RIA Services + ログイン + 画面遷移

前にやったやつの改造です。今回はログイン後にシステムに必須のヘッダーを表示するようにしてみました。 ログイン前 ログイン後 ポイントはログインしている状態としていない状態のVisualStateを作って、VMのプロパティの状態に応じて切り替えているところ…

MVVM Light + ReactiveProperty to @kamebuchi さん

今日はデベロッパーサミット2012にいってきたのですが、そこで抱かれたい男No1で有名な@kamebuchiさんにお会いできました。 ブログ:ブチザッキ 訓練されたあじゅらーの人にとっては有名なBlogだと思います。私もAzureの情報を探してていきつくことが多々あ…

MVVM + Silverlight + WCF RIA Services + Prismでログインして画面遷移

先日書いたのをちょろっと修正しました。 MVVMRxSample.V2.zipちょっとこのサンプルで個人的にポイントだと思ってる箇所をつらつらと書いていこうと思います。 認証 Form認証使って認証しています。 サーバー側 まずForm認証使ってます。なのでWebアプリケー…

MVVMでログインして画面遷移

ちょっとだけ作ってみました。思う所はあるけど・・・。 MVVMRxSample.zip

PrismのWindows Phone SDK 7.1向けバージョンが出てるみたいです

まだ、ちゃんと使ってないので紹介だけになりますが先日出てるのを教えてもらいました。 http://compositewpf.codeplex.com/releases/view/75760ただ、ここからDownloadできるものとnugetから入手できるものは中身が違うっぽいです。nugetから入手できるもの…

MVPVMデザインパターンだ…と…!?

MSDNマガジンの本家のほうを眺めてたら気になる記事が。ちょっと私の英語力では何をいってるのかほとんどわからないですが、MVVMパターンよりもクラス間の依存関係が複雑そうな印象を受けます。一ヶ月放置しておこう。ちゃんと日本語翻訳される記事っぽいし…

KinkumaFramework 2.0.1.1(beta)をnugetにこっそり放流しました

IObservableからIInteractionRequestへの変換(WPF,SL) ValidationSummaryのReactivePropertyのサポート(SL) だけですが、自分が便利に使うためにnugetに固めて放流しました。このあとはTriggerActionをv1系列からひっぱってくる感じかな。

ReactivePropertyをValidationSummaryに対応させてみた

今作ってるKinkumaFramework 2.0は、ReactivePropertyとPrismで開発する際のライブラリを目指してるのですがMVVMのサポートはうすっぺらぺらになりそうです・・・。まぁそれは置いといてLabelとDescriptionViewerは対応できました。出来ましたというよりは、…

ReactivePropertyをSilverlightのLabelやDescriptionViewerに対応させる

さて、最近お気に入りのid:neueccさんのReactivePropertyですがSilverlightで画面作りを楽にしてくれるLabelやDescriptionViewerに対応させてみたいと思います。因みに、下記のようなViewModelを想定しています。 namespace RxPropLabelSample { using Syste…

ReactiveProperty in F#でHello world

ReactivePropertyって別にC#専用ってわけじゃないんだからねっ!! // 名前空間のopenは省略・・・ // ViewModelの定義はスッキリ type SampleViewModel() = let name = new ReactiveProperty<string>() let upper = name.Select(fun (s : string) -> s.ToUpper()) .</string>…

CollectionViewSourceを使ったサンプルをコードレシピに上げました

MSDNフォーラムの質問への回答用に1つコードをアップしました。 1つのコレクションをCollectionViewSourceを使って2つのListBoxに異なる内容を表示する方法

PrismとReactivePropertyのつなぎ その3

ちまちまとした拡張メソッドだけではなく、こんな感じでIInteractionRequestを実装したクラスを作ってしまうのもありかも??まだ、スケジューラとかについては何も考えてないけど、とりあえずのやっつけで・・・。 namespace Okazuki.KinkumaFramework.Reac…

PrismとReactivePropertyのつなぎ その2

ということで、前回さくっと書いたのですが普通に書くとどうなるか・・・? // 普通 this.EditCommand .Subscribe(_ => { var vm = new EditWindowViewModel(this.SelectedItem.Value); this.ShowEditWindowRequest.Raise( new Notification { Title = vm.Ed…

PrismとReactivePropertyのつなぎ

繋ぎといっても大したことはしませんが、InteractionRequestに対して、こんな拡張メソッド用意してればいいのかなぁ? using System; using System.Reactive.Linq; using System.Reactive.Subjects; using Microsoft.Practices.Prism.Interactivity.Interact…

ReactivePropertyを使ってみた感想 イケテル!気持ちいい!ハードルは高い?

# 変更履歴 2011/10/17 コメントの指摘のとおり敷居が高いをハードルが高いに修正しました。id:neueccさんの作ったReactivePropertyが最近アツイので、今チマチマ作ってるWindows Phone 7のアプリケーションでも途中から組み込んで使ってみました。まだアプ…

DataGridの特定のセルの表示を切り替える方法

コードレシピに書いてみました。MSDNフォーラムの質問で心配になったのでコントロールを直接いじる方法を試してみたのですがやっぱり悲しい結果に終わりました。皆も気を付けましょう。 SilverlightのDat​aGridで特定のセルをハイパ​ーリンクにする方法

ReactivePropertyが楽しい その2

前書いたのだと、毎回毎回内容をクリアしてるのでReactiveCollectionのうまみがほとんどないよね!ということなので、初期化して読み込みと続きのデータを読み込むとかいう例を書いてみました。参照設定とかネームスペースの設定さえしておけばLINQ Padでさ…

ReactivePropertyが楽しくて仕方がない

Commandと、その実行結果の紐づけが以下のように流れるようにさっくりと書ける。素敵すぎますよね!! // LINQ Padで実行 // Commandの定義 var command = new ReactiveCommand(); var collection = default(ReactiveCollection<string>); collection = command .Do(</string>…

WPF/SilverlightでUIコントロールを直接弄る方法について・・・

ちょっと前からウォッチしてたMSDN フォーラムの下記のスレッドがありました。 DataGridの特定のセルだけをハイパーリンクにしたい 質問の最初からXAMLではなく、コードでどうにかしたいという要望があったので最終的にDataGridCellのContentにHyperlinkButt…

この本欲しい・・・。というか日本語で! #MVVM

MVVMの厚い本が出るみたいです。タイトルだけみるとちょっとおいしそう・・・。買おうか買うまいか・・・。英語ほとんど読めないのがつらいところ。

MSDN マガジン 9月号(英語)にF# + MVVMの記事が!

Build MVVM Applications in F# 興味のある人はさらっとコードだけでも眺めてみるといいかもです。 F#用のViewModelを記述するためのサポートライブラリみたいなのも紹介されてたりします。あとは非同期ワークフローも!これはC# 5.0が出るまではF#の強みの…

PrismでViewよりViewModelのライフサイクルが長い時メモリリーク起きそう

InteractionRequestとInteractionRequestTriggerでViewModelよりViewが先に消えちゃう場合に、Viewのインスタンスが残り続けちゃうような気がします。 ということでPrismのページに投げてみました。 Memory Leak in InteractionRequestTrigger 果たして正し…

Kinkuma Framework F# v0.2のGetting Startを書きました

CodePlexの以下のページから参照できます。 http://fskinkuma.codeplex.com/documentation 力つきたので少しお休み。

F#用MVVMライブラリ作成日記

とりあえず、それっぽいサンプル書いたので、これをベースにドキュメントのGetting Startでも書いてみよう。 Hello.zip

F#用MVVM補助ライブラリ Kinkuma Framework F# v0.2を公開しました。

DataAnnotationsに対応したものをv0.2として公開しました。nugetでKinkumaFramework.FSharpで検索すると見つかります。ソースコード等はCodePlexで公開しています。 Kinkuma Framework F# (Prism based F# MVVM Support Library)

F#用MVVMライブラリ作成日記

今日は、DataAnnotationsによる入力値のエラー検証を追加しました。今の所以下のような変更履歴です。 ! KinkumaFramework F# v0.1 F#でViewModelを記載する際の補助ライブラリです。 !! 2011/6/26 v0.1.2 * FsValidatableViewModelBaseクラス ** DataAnnota…

F#用MVVMライブラリを作ってみました

とりあえず勢いだけで作ってCodePlex上に置きました。Prismをベースにしています。 Kinkuma Framework F# (Prism based F# MVVM Support Library) nugetからインストールできるのでKinkumaで検索するとひっかかります。nugetのページは以下になります。 Kink…

KinkumaFramework 1.2.12をリリースしました

NugetからKinkumaFrameworkで検索して入手できます。機能的にはそんなに追加していませんが、EventArgsをConverterで変換してコマンドの引数に渡す機能を追加したExtendedInvokeCommandActionを追加しました。 CodePlexのページ リリースノートを貼ってみま…

非同期ワークフローとメッセンジャーのコールバック

ちょっとした小ネタです。F#には非同期ワークフローという非同期処理を同期的に書けるという素敵な機能があります。 MSDNの非同期ワークフローのページからコードを拝借しますが、以下のようなコードが書けます。 open System.Net open Microsoft.FSharp.Con…

F# and MVVM Light Toolkit Sample Applicationをコードレシピに公開しました

昨日、今日あたりでもんもんと考えてたことをまとめました。 F# and MVVM Light Toolkit Sample Application F#でMVVMパターンをやるなら、この記事のようにC#でViewあたりは定義して、ViewModel以降F#で記述するのが妥当だと思います(F#だとViewのデザイナ…

MVVMのVMをF#で実装するとしたら?

こんな基本クラスを用意しておくと記述が楽かも。まぁ同じことはC#でも言えますが。 ネタ元は以下の記事です。 ObservableObject for WPF MVVM open System open System.ComponentModel /// INotifyPropertyChangedの実装 type NotifyObject() = let propert…

F#でMVVM Light Toolkit

フルF#(XAML無し)で組んでみました。後悔しています。とりあえずやるもんじゃないですね!でも、せっかく書いたのでメモメモ。 #if INTERACTIVE #r "PresentationCore.dll" #r "PresentationFramework.dll" #r "WindowsBase.dll" #r "GalaSoft.MvvmLight.E…

MVVM入門 その5「ライブラリを使おう2」を書きました

コードレシピに書きました。 MVVM入門 その5「ライブラリを使おう2」 自分で作って最近放置してるKinkumaFrameworkは書こうか書くまいか悩んだのですが、コード書いたので載せました。入門用にはそぐわないですな。

F#でのMVVMパターン

Simple F# ViewModel for Silverlight MVVMという記事があったのでメモです。 基本的に、私が前に書いたのと同じようなコードになってるっぽいので少し安心です。括弧とかが無いぶんC#に比べてスリムになってるように感じますね。

MVVM入門 その4「ライブラリを使おう」を書きました

コードレシピにMVVM入門 その4「ライブラリを使おう」を書きました。 MVVM入門 その4「ライブラリを使おう」 今回は、今まで頑張って自前実装していた部分を既存のMVVMライブラリで置き換えて実装しています。とりあげているライブラリは今回はPrismとMVVM…

MVVM入門 その3「ViewModelからViewを操作する」を書きました

コードレシピに記事を書きました。正直書きやすくていいです。1000文字以上解説で書ける自信のある人は使ってみるといいかも。ノウハウの集約にもなりますし!! MVVM入門 その3「ViewModelからViewを操作する」

MVVM入門 その2「入力値の検証」

その1に引き続き、その2をコードレシピに公開しました。あまり時間がとれなかったため、書きなぐった感じになってしまいました・・・。なのでタイプミスや、説明が不十分な箇所があると思います。コメントで指摘していただければ説明を補強したりしたいと…