かずきのBlog@hatena

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

ReactiveProperty の検索結果:

空の IObservable からの ReactiveProperty と ReactiveCommand の生成

…よう ということで、ReactiveProperty や ReactiveCommand は IObservable<T> から ToReactiveProperty や ToReactiveCommand メソッドを使って生成できます。 例えば… using Reactive.Bindings; using System; using System.Reactive.Linq; namespace ConsoleApp9 { class Program { static v…

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

ReactiveProperty の DataAnnotations によるバリデーションのエラーメッセージの改善をしました。 今まで 以下のような定義のプロパティで [Required(ErrorMessage = "{0} は必須入力項目です。")] public ReactiveProperty<string> Name { get; } というようなアノテーションをつけたときのエラーメッセージは「Value は必須入力項目です」でした。 今回の対応 「Name は必須…

SDK StyleのプロジェクトファイルをUWP, Xamarinで使いたい

ReactiveProperty のパッケージ分割するにあたってやろうとしてるんだけど標準だときびしい…?ということで MSBuild.Sdk.Extras というパッケージを使いました。 空のクラスライブラリを作って Sdk 属性に MSBuild.Sdk.Extras/2.0.54 を設定して TargetFrameworks を以下のように設定。 <Project Sdk="MSBuild.Sdk.Extras/2.0.54"> <PropertyGroup> <Tar…

ReactiveProperty v6.1.4 をリリースしました

… に更新しました IReactiveProperty を IReadOnlyReactiveProperty を継承するように変更しました。 Implements IReadOnlyReactiveProperty<T> to IReactiveProperty<T> by shanon-hs · Pull Request #131 · runceel/ReactiveProperty · GitHub 少し前のバージョンから動いてましたが Microsoft.Xaml.Be…

ReactiveProperty v6.1 をリリースしました

プルリクエストをマージしてリリースするだけの簡単なお仕事。 詳細は GitHub のリリースページから! Release v6.1.2 · runceel/ReactiveProperty · GitHub プルリクエストや Issue への投稿いつもありがとうございます。多謝!

ReactiveProperty v6.0.2 をリリースしました

…· runceel/ReactiveProperty · GitHub メジャーバージョンが上がってます ということで、1 つ破壊的変更があります。 これまで WPF では EventToReactiveCommand と EventToReactiveProperty を使うのに Blend SDK のアセンブリの Behavior を使用していました。 この Blend SDK は Visual Studio 2019 から同梱されなくなっていて、公式の NuGet パッ…

ReactiveProperty v5.6.0 をリリースしました

AsyncReactiveCommand の機能改善です。 具体的には以下のブログ記事の「もっと複雑なケース」への対応になります。 blog.okazuki.jp インストールはいつも通り NuGet から! www.nuget.org

ReactiveProperty で二度押し防止 2019 年 6 月版

改版履歴 ReactiveProperty v5.6.0 に合わせてアップデート 本文 ということで書いていきましょう。 といっても二度押し防止系は AsyncReactiveCommand 使うと楽。以上です。 例えば非同期処理が終わるまで押せないボタンを実現したい場合は以下のような ViewModel になります。 using Reactive.Bindings; using System.ComponentModel; using System.Threading.Ta…

ReactivePropertyのドキュメントを追加しました

コードスニペットを追加するドキュメントと(手動追加してねって案内) okazuki.jp Prism と ReactiveProperty を使う方法(WPF) okazuki.jp

ReactiveProperty v5.5.1 をリリースしました

v5.5.1 をリリースしました。 v5.5.0 は欠番というか、依存ライブラリーのバージョン上げするの忘れてたので隠しました。 更新内容 この問題に対応しました。まぁ確かにレアケースで、こんな使い方をすることは無いとは思うのですが念のため。 github.com あと System.Reactive を現時点の最新版の 4.1.5 にしています。 インストール いつも通り NuGet から。 www.nuget.org

MVVM でイベント引数の値を ViewModel のコマンドに渡す方法

…れていたりします。 ReactiveProperty の場合 UWP と WPF 向けに用意しています。 EventToReactiveCommand と EventToReactiveProperty になります。EventToReactiveCommand がトリガーの引数を変換処理も挟みつつ ReactiveCommand の Execute メソッドの引数に渡します。EventToReactiveProperty がトリガーの引数を変換処理も挟みつつ Reactive…

ReactiveProperty v5.4.0 をリリースしました

…ていたのが改善されています。 GitHub のリリースノートはこちら。 Release v5.4.0 · runceel/ReactiveProperty · GitHub NuGet はこちら。 www.nuget.org 余談ですが Xamarin Android にて参照追加しただけでビルドエラーになる問題については最新の Xamarin Android (確認したのは VS 2019 だけですが) では起きなくなってます。 まとめ 楽しい MVVM プログラミングを!

ReactiveProperty のドキュメントを MkDocs から VuePress に変えてみたときの作業ログ

…を修理交換したので ReactiveProperty のドキュメント生成に使ってた MkDocs を再セットアップするのではなく、もっと気軽に導入できる、今後も使い続けれて楽しそうなものはないか?という感じで探したところ VuePress が目についたので移行してみました。 vuepress.vuejs.org 前準備 ブランチを切って空コミットをして Pull Request を作って作業を開始です。 git checkout -b migrate-tovuepress g…

ReactiveProperty v5.3.1 をリリースしました

System.Reactive のバージョン上げました。 あと、不要な依存関係があったのを削除したのと、ドキュメントコメントが全部の public メソッドに追加されてます。 詳しいことは GitHub のリリースに書いています。 Release v5.3.1 · runceel/ReactiveProperty · GitHub NuGet に上げてるのでインストールと更新はこちらからどうぞ。 www.nuget.org

ReactiveProperty v5.3.0 をリリースしました

といっても Pull Request をマージしてパッケージングして nuget.org にあげただけです。 そろそろ Release ブランチにでも push したら自動でパッケージ公開されるようにしようかなぁ…。 NuGet のページはこちら。 www.nuget.org リリースのページはこちら。 github.com

Reactive Extensions とか知らない人向けの ReactiveProperty のはじめかた その 2

…い方を紹介します。 ReactiveProperty 値を加工して代入しているケース ReactiveProperty に値を代入するケースがあると思います。例えば以下のような感じですね。 public ReactiveProperty<string> A { get; } = new ReactiveProperty<string>(); public ReactiveProperty<string> B { get; } = new ReactiveProperty<st…

ReactiveProperty v5.1.1 をリリースしました

…した。 具体的には ReactiveProperty 生成時に mode に IgnoreInitialValidationError を追加する感じです。こんな風に。 // new する場合 new ReactiveProperty<string>(mode: ReactivePropertyMode.Default | ReactivePropertyMode.IgnoreInitialValidationError); // ToReactiveProperty する場…

ReactiveProperty v5.0.0 をリリースしました

…ndard 1.3 から 2.0 になりました。なので、.NET Framework だと 4.6.1 以降、UWP だと Fall Creators Update 以降への対応になります。 まぁ新しめのプラットフォームを使っていれば恐らく問題にはなりませんが PCL とか .NET Standard 1.x 系を使っている場合は引き続き ReactiveProperty 4.x 以下をご利用ください。 インストールはいつも通り nuget から! www.nuget.org

ReactiveProperty v4.2.2 をリリースしました

シリアライズの関係で ReactivePropertySlim クラスの Mode プロパティを public にしました。 更新は、いつも通り NuGet からどうぞ。 www.nuget.org

Reactive Extensions とか知らない人向け ReactiveProperty のはじめの使い方

ReactiveProperty は MVVM + Rx でプログラム組むときにいい感じにしてくれるものですが MVVM だけでも大変なのに Rx なんて魔法みたいなものを覚えないといけないなんて…!!ということで学習コストが高いので導入をためらうことがあると思います。 当然、何かを使うということは導入のためのコストを払って開発を通じて回収していかないといけないので、そこのバランスが取れないものをあんまり入れると大変なことになりますよね。 ということで Rx 知らない人向けに…

ReactiveProperty v4.2.1 をリリースしました

Xamarin.Android 関連で提供してた機能を ReactivePropertySlim/ReadOnlyReactiveSlim に対応するための Pull Request をもらってマージしてたのでリリースしました。 github.com NuGet からインストールして使ってください。 www.nuget.org

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

github.com ReactiveProperty と ReadOnlyReactiveProperty に IEqualityComparer で値の比較条件を指定できるようにしました。 @soi013 さんプルリクありがとうございます。 導入はいつも通り nuget から! www.nuget.org

ReactiveProperty v4.1.0 をリリースしました

…すが、たまに不便な ReactiveProperty / ReadOnlyReactiveProperty が勝手に UI Thread にイベントをディスパッチする機能があります。これはインスタンス生成時に Scheduler を指定することで制御は出来るのですが、その他にも UI にエラー通知するための INotifyDataErrorInfo の実装とかもあったりして Model レイヤーで使うにはオーバースペックな機能があったりしました。 これを解決するために軽量な …

ReactiveProperty v4.0.0 をリリースしました

….1 のままですが ReactiveProperty v4.0.0 をリリースしました。 Reactive Extensions の v4.0.0 がリリースされたら(いつだろう)Rx のバージョンだけ上げようと思います。 インストール いつも通り NuGet からインストールできます。 www.nuget.org 新しい試み リリースページ GitHub のリリース機能使ってみた。 github.com みんな使ってるから気になったので使ってみました。作るの楽でいいですね。…

2018 年はじめの INotifyPropertyChanged の実装方法

C#

…いけそうな環境なら ReactiveProperty を使うと思います。 Roslyn Analyzer これも Visual Studio 2015 からある機能なので、新しいものではないですが、C# といえばという Top 2 のお二方が実装しているものがあります。 ufcpp.net github.com これで生成されるコードと用意されているカスタマイズポイントで満足できる場合は使ってもいいかもしれません。 でも実際に使うなら、このコードを参考にしながら自作 Anal…

Microsoft Tech Summit 2017 で Visual Studio Mobile Center について登壇してきました その2「感想編」

…た。Prism と ReactiveProperty あたりを使っています。 考えたのが、Visual Studio Mobile Center が Xamarin のみにしか対応していないという風に思われるのは嫌だったので Android のネイティブでの開発もしてみようと思いました。その際に、Java ではなく Kotlin でやってみるか!!と思い立って Kotlin で、ほぼほぼ同じ機能を持ったものを作ってみました。 Android アプリのみを開発するなら、やっぱり…

ReactiveProperty v4系をXamarin.Formsで使う方法

…ve Extensions 3系は正直Xamarinで使うのは辛かった。なんかパッケージ追加しただけで動かなくなるし。 Reactive Extensions 4系は、そんなことがない!素敵!! ということでReactive Extensions 4系に依存しているReactiveProperty 4系もXamarin.Formsから割とするっと使えます。ということで手順をアップデートしました。 github.com まだpreview版なので本番に適用するかどうかは慎重に!

ReactiveProperty v4.0.0 プレリリース版をリリースしました

表題の通りReactiveProperty v4.0.0のプレリリース版を公開しました。NuGetのページは以下になります。 www.nuget.org 主な変更点は以下の通りです。 更新 System.Reactive v4.0.0-preview00001 に更新 変更 ReactiveProperty の internal なコンストラクタを public に変更しました ReadOnlyReactiveProperty の internal なコンストラクタを pub…

ReactiveProperty 3.6.0をリリースしました

昨日の夜にやろうと思ったんですが今日になってしまいました。 www.nuget.org 今回は、iOS向けのSetBindingメソッドが正しく動いてなかった奴の修正と、ReactiveCommandとAsyncReactiveCommandクラスのSubscribeメソッドに引数無し版を追加しました。どちらもプルリクエストです。ありがたやありがたや。

一定時間やりなおしが出来るようにする

…の作成 とりあえず、ReactivePropertyとPrism.Coreを参照に追加して以下のコードを書きます。 using System; using System.Collections.ObjectModel; using System.Linq; using System.Reactive; using System.Reactive.Linq; using System.Threading.Tasks; namespace App2 { class LazyAct…