かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

MVVM

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

MVVM入門 その1「シンプル四則演算アプリケーションの作成」

ということでコードレシピにサンプルプログラムを投稿しました。以下から参照できます。とりあえず、簡単な四則演算を行うアプリケーションをテーマに書いてみました。ミスってるところや説明がおかしいと思われるところはがんがんコメントしてください。随…

ContextMenuでのBinding時の注意事項

コードレシピにサンプルプログラムを公開しました。 ContextMenu内のアイテムのBinding時の注意事項 この問題はtrapemiyaさんが遭遇した問題でTwitter上でやり取りしてる間に行きついた解決策になります。 自分でもはまりそうだと思ったので、将来の自分のた…

PrismとKinkumaFrameworkとNotifyPropertyWeaverを設定したプロジェクトテンプレート

VC# Expressでnuget使ったりと色々苦慮した結果プロジェクトテンプレートが一番楽なのかなと思いました。ということでさくっと作ってみました。 KF.zip 上記のzipをそのまま下記の場所にコピーします。 C:\Users\ユーザ名\Documents\Visual Studio 2010\Temp…

Style内でBehaviorやTriggerを設定したい

今回のお題の元ネタはこちらの記事です。 Attaching Behaviors from the Expression Blend SDK using Styles Style内でBlend SDKのBehaviorを設定できないか?ということなんですが、普通にやるとできません。そのため以下のような仕掛けを作ってやる必要が…

ViewModelのプロパティの変更を監視してアクションを実行する方法

コードレシピにサンプルをアップしました。はてなダイアリーより書きやすくていい!!!記事はこちらになります。 ViewModelのプロパティの変更を監視してアクションを実行する方法

Kinkuma Framework TODOリスト

とりあえず、ドキュメントをぼちぼち書いてる。気になる人(いないと思うけど)は、CodePlexのリポジトリに全部上げてるのでチェックしてみるといいかもです。突っ込みは大歓迎です。 ドキュメント MVVMについて Kinkuma Frameworkのコンセプトと目指すとこ…

Kinkuma Framework 1.2.7をリリースしてみました

nugetのほうにアップしてあります。 KinkumaFramework(Prism based MVVM Framework) - 1.2.7 今回のは機能追加ではなくて性能改善です。 Kinkuma Framework 1.2.5のViewModelの初期化がどれくらい遅いか試してみた 記述の簡潔さに力を入れてリフレクションを…

Kinkuma Framework 1.2.5リリースしました

ちょっと思いつきで、機能追加をしました。 KinkumaFrameworkとは PrismのMVVMサポートライブラリを補強するのと、自己満足を目指して作られています。現時点ではWPFに特化することで作られています。 プロジェクトページ http://okazukimvvmsupport.codeple…

DRY原則とMVVMで思う事

個人的に感じてる違和感なんですが、MVVMのVMのコードってDRY原則に反してるというか、同じようなパターンのコードがたくさんあるような気がするんですよねぇ。 29-DRY原則 コードスニペットも個人的な感覚だと、便利なコピペだと思ったりしてるので、使いど…