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

かずきのBlog@hatena

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

ReactiveProperty

ReactiveProperty 3.6.0をリリースしました

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

ReactiveProperty v3.5.0をリリースしました

IFilteredReadOnlyObservableCollectionのフィルタ条件をリフレッシュするRefreshメソッドを追加しました。 これで、フィルター条件を途中で変えることができます。 WPFでは無事動いてるのですがUWPとXamarinがちゃんと動くか未知です。というのもRefreshし…

ReactivePropertyでXAMLで.Valueのつけ忘れを教えてくれるReSharperプラグイン

@okazuki ReactiveProperty にはいつも大変お世話になっています。生活必需品です。自分はよく XAML 側の .Value をド忘れするのですが、これをハイライトしてくれる R# プラグインを書いてみました。https://t.co/xd6Nv19rgu— sh4 (@sh4) 2017年2月3日 ガチ…

ReactiveProperty 3.4.0をXamarinで使う場合

Reactive Extensions 3.1.xがPCLにうまく入らないので、.NET Standardにプロジェクトを変換してから入れてください。 何かRx安定しないな…。

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

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

ReactiveProperty 3.4.0をリリースしました

www.nuget.org Reactive Extensionsを3.1.0から3.1.1に更新しています。 DependencyObject(UWP & WPF)に以下の拡張メソッドを追加しました ObserveDependencyProperty: DependencyPropertyの変更を監視するIObservable<Unit>を返します。 ToReadOnlyReactiveProper</unit>…

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

ReactiveProperty v3.3.1をリリースしました。 www.nuget.org 新機能はありませんが、依存しているライブラリを最新版にあげました。 System.Reactive: v3.0.0 → v3.1.0 UWPのビヘイビア: 1.?.? → 2.0.0 今後ともよろしくお願いします。

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

Reactive Extensions 3.0.0に対応したReactiveProperty v3.0.0をリリースしました。 新機能はありません! インストールはNuGetからお願いします。 www.nuget.org Windows 8.1とWindows Phone 8.1をサポート対象から外しました。(Windows 8.1では動くんだけ…

Visual Studio上のXamarin.FormsでReactiveProperty v3.0を使う方法

Rx 3.0対応しているRP 3.0ですが、まだpreリリースです。何故なら、Xamarin.Androidで参照追加するとコンパイルエラーになるから…! ということで、とりあえず使い方を試行錯誤しながら書いていこうと思います。 まず、プロジェクトを作ります。作ったら以下…

ReactiveProperty v2.9.0とv3.0.0-pre5をリリースしました。

id:neueccさんがプルリクをくれました。最近多いですね! www.nuget.org 今回追加された機能は、AsyncReactiveCommandクラスになります。Subscribeメソッドが非同期メソッドを受け取って、その非同期メソッドが実行中の間は自動的にCanExecuteをFalseにして…

WPFでTextBoxに入力エラーがないときだけ押せるボタンを実現したい

1つ前でVMでやるのがおすすめですよって書いたけどどうやるの?っていう記事です。 blog.okazuki.jp 今回はReactivePropertyの組み込みのエラーチェック機能を使ってやってみます。まず。intしか受け付けないValidationAttributeを作ります。 using System.C…

ReactiveProperty v3.0.0-pre2をリリースしました

.NET Standard 1.1としてビルドできたのでNuGetに放流しました。 ただ、nuspec書くのがだるかったのでnetstandard1.1とかのフォルダは切ってませんので、今までと使う側としては何も変わりありません。 www.nuget.org UWPに参照追加するとビルドエラーになる…

ReactiveProperty v3.0.0-pre1を放流しました

Reactive Extensions 3.0対応です。 www.nuget.org 要注意バージョンです! 私の環境で、.NET Framework 4.6での動作は確認できました。動作しなかったプラットフォームは以下になります。 Xamarin UWP 何故かNuGetで参照追加するだけでコンパイルエラーにな…

ReactiveProperty v2.8をリリースしました

リリースしました。 www.nuget.org id:neueccさんのプルリクのおかげで、今まで一手間必要だったコンソールアプリやLINQPadでのReactivePropertyの利用が簡単になりました。(今までデフォルトだと例外はいてたのが、例外はかなくなった) あと、Blogにリク…

ReactiveProperty v2.7.4をリリースしました

www.nuget.org @neueccさんが、またプルリクをくれました。UniRxからポーティングされたクラスが1つ追加されました。 MessageBrokerというRxっぽく使えるMessenger的なクラスになります。 基本的に以下のような使い方になります。 // 購読 MessageBroker.Def…

ReactiveProperty v2.7.3.1をリリースしました

www.nuget.org このようなリクエストを受け取ったのでプルリクを投げて頂いて取り込みました。 github.com pdbを含むようにしただけでReactiveProperty本体には特に更新は入っていません。

ReactiveProperty v2.7.3をリリースしました

ソファーで爆睡してて目覚めたらこんなメッセージが ReactivePropertyにどうぞ(とは) https://t.co/49sVKAdyns @okazuki @xin9le— neuecc (@neuecc) 2016年6月6日 WPF限定なのをどうにかしたいと思いつつも、まぁ現実問題プラットフォーム固有処理ですよね……

ReactivePropertyのコードスニペット

ReactivePropertyをインストールすると、地味にコードスニペットもNuGetパッケージ内に入ってます。ただインストールはされないので自分でインストールが必要です。 コードスニペットマネージャーからpackages/ReactiveProperty.2.x.x/Snippet/csharp6フォル…

ReactivePropertyで自動でUIスレッドにイベント発行を変えるのを抑止する その2

blog.okazuki.jp 上記記事では、ViewModelの中でSynchronizationContextSchedulerを作成していましたが、これだと単体テストが辛いということになります。これをいい感じにするには、ちょっと工夫がいるのですが…。例えばPrism.Unityを使うと以下のようにVie…

ReactivePropertyで自動でUIスレッドにイベント発行を変えるのを抑止する

普通はいいんですが、UWPとかでマルチウィンドウとか、共有コントラクトとか使うとUIスレッドが複数生成されて、UIスレッドが1つという前提に立ってるReactivePropertyだと、ちょっと嫌な感じになってしまいます。 そんなときは、Appクラスの初期化処理で以…

ReactivePropertyオーバービューを更新しました。

blog.okazuki.jp 「そのほかにも」という箇所から簡単にですが、ReactivePropertyで追加しているIObservableの拡張メソッドで、紹介していないものを書いてみました。

ReactivePropertyの英語ドキュメントを更新しました

誰か英語得意な人プルリク頼む! github.com

ReactivePropertyの後始末

久しぶりのReactivePropertyネタです。 ReactiveProperty, ReadOnlyReactiveProperty, ReactiveCommand等は、地味にIDisposableを実装しています。 IDisposableを実装しているということは、Disposeをしないといけないということになります。 Disposeしなく…

ReactiveProperty v2.7.2をリリースしてました

www.nuget.org ReadOnlyReactiveCollectionが、過負荷のときに処理順番がおかしくなることがあるという報告がきたのでなおしました。

ReactiveProperty v2.7.1をリリースしました

www.nuget.org こんな意見をいただいたので @okazuki BusyNotifier から IsNotBusy(IsReady?) as ReactiveProperty が得られると嬉しいですね。理由はこれ→ https://t.co/SjGC0SHtzu です。— あめいスピナーデコ (@amay077) 2016年4月8日 ちょっと機能を追加…

ReactivePropertyで2度押し防止/ReactiveProperty v2.7.0をリリースしました

2度押し防止のための機能を追加しました。 www.nuget.org 名前はBusyNotifierです。 こんな感じで使います。 public class MainWindowViewModel { private BusyNotifier BusyNotifier { get; } = new BusyNotifier(); public ReactiveProperty<string> Output { get;</string>…

ReactivePropertyで2度押し防止

tamafuyou.hatenablog.com qiita.com CountNotifierを使うケースで。CountNotifierは、カウントを数えるものですが、Emptyの時だけというようにSelectかましてToReactiveCommandすると、多重実行防止にも使えます。こんな感じで。 public class MainWindowVi…

XamarinのAndroidアプリでReactivePropertyを使う 2016年版

随分昔に書いてますね。 blog.okazuki.jp 最近は事情も変わったので改めて書いてみようと思います。 ReactivePropertyは? Reactive ExtensionsをベースにしたMVVMの支援ライブラリです。 blog.okazuki.jp Xamarinでも使えるの? Xamarin.AndroidとXamarin.i…

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

www.nuget.org さくっとリリースしました。 ReactivePropertyで使うデフォルトのスケジューラをReactivePropertySchedulerにしました 何もしないと、UIDispatcherSchedulerを使い、ReactivePropertyScheduler.SetDefaultでスケジューラーを明示したときには…

ReactiveProperty v2.6-beta1をリリースしました

ということで、リリースしました。 www.nuget.org -Preつけてインストールしてください。 変更点 今までReactivePropertyではSchedulerを指定しない場合はUIDispatcherScheduler.Defaultで取得できるSchedulerを使用していました。今回のアップデートでReact…

ReactiveProperty v2.5をリリースしました

www.nuget.org バリデーションを強制的に再評価するForceValidateメソッドと、強制的に外部に変更通知を発行するForceNotifyメソッドを追加しました。

ReactiveProperty v2.4.2をリリースしました

www.nuget.org ToReactivePropertyAsSynchronizedで、ignoreValidationErrorValueが無視されてたという報告を受けたので修正しました。 多分C#6への置き換えのときにチョンボしたと思われます…。

ReactiveProperty v2.4.1をリリースしました

www.nuget.org クリスマスリリース!というわけでもなく、バグっぽい挙動の報告がきたのでなおしました。はい。 v2.4.1 バグフィックス ReadOnlyReactiveCollectionでDispose時にコレクションの要素のDisposeが呼ばれないケースがある問題に対応

ReactiveProperty v2.4.0-pre1を放流しました

www.nuget.org ReactiveProperty v2.4.0-pre1をNuGetに放流しました。 今回は、Xamarin.iOSのUIViewに対してSetBindingメソッドを使えるようにしたりしました。Xamarin.Androidにしか今までなかった機能をポーティングした感じです。が…、手元にiOSとMacがな…

MVVMをリアクティブプログラミングで快適にReactivePropertyオーバービュー

MVVM + リアクティブプログラミングの組み合わせを快適にするためのライブラリのReactiveProperty解説記事です。 github.com 以下のNuGetから入手できます。 www.nuget.org ReactivePropertyの特徴 ReactivePropertyは、MVVM + Rxを支援するための機能を有し…

ReactiveProperty v2.3をリリースしました

ReactivePropertyのv2.3をリリースしました。 今回の目玉は、パフォーマンスの改善です。 今までコンストラクタで色々やっていた関係で初期化が重いと一部で有名?でしたが、今回はコンストラクタを単純化したため軽くなってるはずです。100000回の初期化で4…

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

.NET 4.6のバイナリないの?っていわれたので作りました。 ついでに依存してるNuGetのパッケージのアップデートも行いました。 www.nuget.org

ReactiveProperty v2.3-pre2をリリースしました

のいえさんがコードを綺麗にしてくれたので、それを取り込んでテストしてOKだったのでそのままリリースしました。 www.nuget.org とりあえず、現行正式版から初期化時間を1/4以下にしたので遅いって思ってる人は試してみてください。

ReactiveProperty 2.3-preをリリースしました

www.nuget.org 今回は、Xamarin.Macへ対応するためのNuGetパッケージの定義ファイルの更新と、ReactivePropertyクラスのコンストラクタを変更して初期化時の性能を改善してみました。 そのため、結構がっつりとソースをいじってるのでPreリリースという形に…

ReactivePropertyでModelに紐づくViewModelの作り方のパターン

データの入れ物のModelに対するViewModelは大体こんな感じになるよねっていう感じのものを作ってみました。 とりあえず以下のようなイメージです。 ModelはINotifyPropertyChangedを実装した値の入れ物のクラス ViewModelはそれをラップしてVからの入力値を…

ReactiveProperty + Prism.Wpfでリストに表示されてる項目を編集するサンプルを書いてみた

github.com ListBoxに表示されてる項目を選択してボタンを押すとポップアップが出てきて編集するっていう簡単なサンプルです。

ReactivePropertyのリポジトリにひっそりTODOアプリのサンプル追加しました

ひっそりと… github.com TodoMVCというサイトにあるサンプルに似た雰囲気にしてみました。 Serviceクラスの存在意義が無い気がしてるので消すかも。

ReactiveProperty v2.2.8をリリースしました

IReadOnlyReactivePropertyインターフェースを導入して、ReactivePropertyもこのインターフェースを実装するようにしました。まぁBCLのList系コントロールと同じようなパターンに従った感じです。 詳細は以下のIssueから。 github.com nugetのページは以下に…

ReactivePropertyで、ViewModelのプロパティに変更があったかどうか判別できるようにしたい

プロパティの値が1つでも書き換わってたら判別したい。そういうことはありますよね? ReactivePropertyを使うと、こんな感じで実現できます。(変更があったかというフラグをリセットする機能つき) まず、ReactivePropertyに変更があったときにtrueを発行す…

ReactiveProperty v2.2.7をリリースしました

www.nuget.org リアルタイムフィルタリングコレクションのIFilteredReadOnlyObservableCollectionがUWPのGridViewのItemsSourceに設定しても反応しなかった問題に対処しました。 その関係で内部実装がちょろっと変わってます。

複数のプロパティを監視してReactivePropertyの値を更新する

はて、ReactivePropertyで二つの値を監視するにはどうしたらいいんだ? 拡大率と中心位置の二つの値から、左上の位置を算出したい。 二つをSubscribeして「左上の位置」のValueを更新すればいいのかな?— ぎゃばんV8!V8! 怒りのデスロード (@ledsun) 2015, 1…

UWPで複数ウィンドウを出す

UWPで複数ウィンドウの出し方です。 基本的には、CoreApplicationのCreateNewViewで新しいCoreApplicationViewを作って、そいつのDispatcher上で新しいWindowを表示してやるようなイメージです。コードでいうとこんな感じ。 private async void button_Click…

RxとReactivePropertyを使って、WPFでUnidirection Data Flowを実現するを真似してみた

ありがたいことに最近ReactivePropertyを勧めたら使い始めて頂けました。 qiita.com このコードを大げさに書いたらどうなるかなぁというのでやってみました。 ということでModel部分。 なんかきっかけがあるタイミングで、インクリメントし続けるだけの奴。 …

ReactiveProperty v2.2.6をリリースしました

www.nuget.org ReactiveCollectionにAddRangeOnSchedulerメソッドを追加しました。 平たく言うとIssueでリクエストが来たので。 github.com

ReactiveProperty v2.2.5をリリースしました

www.nuget.org ということでリリースしました。以下のようなIssueが来てたので参照をちょっときれいにしました。 github.com ただ、私の環境で再現させることができなかった…。誰か起きてた人います?