tmori3y2のブログ

主にWindowsのプログラムなど

WPF

C++/CLIなしでMFC/WPF相互運用への道

WPFだけ「classic desktop」に昇格したらしい grabacr.net 『ちなみに余談ですが、私は Windows デスクトップ アプリが「クラシック」と表現されていることに納得していません。』 ごもっとも。というか、まだまだ、MFC/Windows Forms現役ですよね・・・ で…

初心者が迷ったWPFの上付き文字/下付き文字

WPF

WPF UserControlで下付き文字をラベルやDataGridのHeaderに設定したくてTypographyというのを調べた。 WPF のタイポグラフィ Typography クラス (System.Windows.Documents) しかし、Windows 7/.NET 4.5.2だと上手く動かない。 .NET 3.xだと動いていたという…

初心者が悩んだOxyPlotによるLineSeriesの描画とWPFコントロールのStyleの継承

インフルエンザや風邪は、まだまだ流行っているようです。皆さんもお気をつけてください。 tmori3y2.hatenablog.com さて、XYデータでX軸の重複チェックが出来るようになると、Chartを描いてみたくなる。 IoTも見こして、将来的にはセンサデータなどのリアル…

ReactivePropertyのCountNotifierを再入防止に使用する

blog.okazuki.jp ReactiveProperty/CountNotifier.cs at master · runceel/ReactiveProperty · GitHub 「特徴的なのは、IncrementメソッドとDecrementメソッドが返すIDisposableをDisposeすることで、インクリメントやデクリメントの逆が実行されて値がもと…

初心者が迷ったReactiveCollectionとDataGridの重複値のチェック~リターンズ2

2016/12/05 注記 この記事のModelのコレクションをReactiveCollectionで実装する方法には、問題があります。 理由は、Schedulerのデフォルトの動作で、ReactivePropertyはViewへの更新のみがRenderingスレッドで実行されるのに対して、ReactiveCollectionのA…

初心者が迷ったReactiveCollectionとDataGridの重複値のチェック~リターンズ

2016/12/05 注記 この記事のModelのコレクションをReactiveCollectionで実装する方法には、問題があります。 理由は、Schedulerのデフォルトの動作で、ReactivePropertyはViewへの更新のみがRenderingスレッドで実行されるのに対して、ReactiveCollectionのA…

初心者が迷ってるReactiveCollectionとDataGridの重複値のチェック

2016/12/05 注記 この記事のModelのコレクションをReactiveCollectionで実装する方法には、問題があります。 理由は、Schedulerのデフォルトの動作で、ReactivePropertyはViewへの更新のみがRenderingスレッドで実行されるのに対して、ReactiveCollectionのA…

サクッと自家製NuGetを作ってReacitiveCollectionを使用したプロジェクトに機能を追加する

良く使用するヘルパークラスやXAMLのスタイルはNuGet Packageにしておくと便利です。 今回は、Viewで使いまわせる以下のヘルパークラスやコンテンツを含むパッケージを作成してみました。 Window Close前に編集中のコントロールの強制評価をしてエラーをブロ…

初心者が迷ったReactiveCollectionとDataGridのエラーと変更フラグの集計

2016/12/05 注記 この記事のModelのコレクションをReactiveCollectionで実装する方法には、問題があります。 理由は、Schedulerのデフォルトの動作で、ReactivePropertyはViewへの更新のみがRenderingスレッドで実行されるのに対して、ReactiveCollectionのA…

初心者が迷ったSystem.Windows.Interactivityの困ったちゃん二連発

Blend SDKのSystem.Windows.Interactivityにはお世話になっています。 イベントをコマンドに変換するときは、 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" とか、 xmlns:i="clr-namespace:System.Windows.Interactivity;assembly…

初心者が迷った流すべきものを流さない時はラムダ式に入れないとイケナイという話

tmori3y2.hatenablog.com Observableに変えていく Observableじゃないメタデータバージョン ReactivePropertyなメタデータバージョン メタデーターは、どうせSetValidateNotifyError()まで流せないので、ReactivePropertyでラムダ式に埋め込む LINQを書きや…

初心者が迷ったReactivePropertyを使用したModelのDirtyフラグ

大した説明もなく、さらっとIsDirtyをコードに紛れ込ませていましたが、元ネタはかずき大先生のこちらの記事。 blog.okazuki.jp ReadOnlyReactivePropertyじゃなくして、クリアをIsDirty.Value = falseで出来るように端折っています・・・ tmori3y2.hatenabl…

初心者が迷ったReactivePropertyを使用した通知サイクルの改良と再入ブロック処理

(2016/02/07)ReactiveProperty 2.5で再入ブロックが不要になったので、追記したコメントを書き換えました。 tmori3y2.hatenablog.com 改良型の数値型のReactiveProperty+MVVMパターンでは、以下の通知サイクルが回るようになっています。 M→VM(→V)→VM Model…

初心者が迷ったReactivePropertyを使用した数値型のView Modelの通知サイクルの改良

tmori3y2.hatenablog.com 前回のSubscribe()の実装の補足です。 今扱っているのは、表示や有効数字は小数点以下の桁数が決まっているけど、小数点以下の省略した0や、入力時の余計な0は良きに計らってくれるという、何とも贅沢なGUIの例です。 しかし、数値…

初心者が迷ったReactivePropertyを使用した数値型のView Model

tmori3y2.hatenablog.com Modelが出来たら、いよいよView Modelです。 さて、ここまで書いて、WPF+MVVM+ReactiveProperty+Rx+LINQがどれも始めて半年程度の自分が、LINQ式の中にObservableなメタデータを埋め込んでいくところで罠にはまりまくったことが段々…

初心者が迷ったReactivePropertyを使用した数値型のModel

tmori3y2.hatenablog.com 前回は、TextBoxの文字列を数値型に変換するときにdecimalで一旦受けると良いという話をした。 変換とチェックの拡張メソッドを作っておくのが無難 入力するデータはdecimalで一旦受けることを検討 整数は小数点以下の桁数が0のdeci…

初心者が迷ったReactivePropertyを使用した数値型の処理

tmori3y2.hatenablog.com Modelの型が数値型のプロパティは、TextBoxにバインドするときにはView Modelで文字列型に変換するという話をしました。 しかし、単純に、数値型といっても整数型、浮動小数点型、固定小数点型など、いろいろある。 組み込み型の一…

初心者が迷ったReactivePropertyを使用したView Modelの設計

ReactivePropertyは、 データソースのデータ型(DTO: Data Transfer Object) それに毛(INortifyPropertyChanged)が生えた程度のPOCO (Plain Old CLR Object) との相性が抜群な上、 Rxで処理を記述出来る ので、複雑でない場合はView Modelでの実装が中心にな…

WPF + MVVM初心者が躓きReactivePropertyに救われたこと

WPF + MVVMで開発を始めて、半年ほどの初心者です。 WPF+MVVMは初心者に優しくない(=習得が難しい)なっと思った部分をReactivePropertyに拾ってもらって、ようやく先に進めるようになってきました。 多分、同じように躓く人は多いのではないかと思われたので…

Microsoft All-In-One Code Frameworkのサンプルを元にMFCでC++/CLIを使用せずにWindows FormやWPFのUserControlを使用する

アンマネージアプリケーションと、マネージアプリケーションを組み合わせたシステムを開発していると、そろそろUIはMFCから脱却したいと思うが、規模が大きいと抵抗勢力も多く中々移行が進まない。 ならば、UserControlを新規にWindows FormやWPFで開発すれ…