WPF下記記事にてFRPライブラリのSodiumとWPFを連携させてみました。何でもプログラミング今回はUserControlでも利用できるよう実装してみたいと思います。何でもプログラミング今回は、C#にてSodiumとWPFを連携させてみたいと思います。Architectureを利用してWPFアプリケーションを作成しました。ArchitectureでUserControlを実装してみたいと思います。ArchitectureをWPFに導入してみました。何でもプログラミング今回はC#で近いものを実装してみたいと思います。WPF下記記事にて、型でコントロールを分岐する実装をしました。何でもプログラミング今回はユーザーが独自に定義した条件で分岐するよう実装します。WPF今回はTreeViewを利用して階層構造のデータを表示してみます。基本的にはDataTemplateにItemsSourceが加わったのものです。ItemsSourceに子供の要素を保持しているプロパティをバインドします。WPF下記記事にてリストボックスで利用できるBehaviorを作成しました。何でもプログラミング今回はこれを拡張して、複数選択に対応させた実装をします。単選択の時とほとんど同じです。WPF今回はListBoxに、選択されたindexを送るCommandを実装します。実装はBehaviorを利用して行います。Behaviorの詳しい内容は下記記事を参照してください。WPF下記記事にてOpenFileDialogに対応したActionを作成しました。何でもプログラミング今回はフォルダを選択するダイアログに対応したActionを作成します。WPFVisualStudioに備え付けのXAMLエディタでデザインをする際、実行時に決定される可変個のコントロールを扱うのは大変です。そこで今回は、デザイン時にサンプルのViewModelを利用する方法を書いていきます。MVVM下記記事にてUI画像をキャプチャする方法を記述しました。何でもプログラミング今回は、キャプチャ時のみに表示を変更したい場合に対応します。WPF下記記事において、MVVMにおけるメッセージボックス表示の実装を行いました。WPF下記記事では同じ型のリストを元にコントロールを作成しました。何でもプログラミング今回は異なる型のリスト(ベースクラスのリストで、各インスタンスの型はバラバラ)を元にコントロールを作成してみます。WPFF#でWPFプロジェクトを作成する方法は下記記事を参照してください。ボタンを押す度、ランダムな位置に円シェイプを追加するアプリケーションを作成します。ボタンを押すと"Hello"のメッセージボックスが表示されるアプリケーションを作成します。下記の様なシンプルなコードになります。Viewが分離できていません。MVVM今回はファイルダイアログを開いて選択されたパスをCommandで送る機能を実装します。この機能を実装するにあたり、Actionを利用します。Behaviorと同じく、System.Windows.Interactivity.dllを利用します。WPF今回はdouble値をCommandで送るSliderを作成します。SliderにはCommandプロパティが用意されていないため、Behaviorを作成します。Behaviorの基本は下記記事を参照してください。WPF下記記事ではキーボードのフォーカスが外れた時にCommandを実行するよう実装しました。何でもプログラミング今回は1文字変更する度にCommandを実行するよう実装します。MVVM今回はstringを送るCommandをTextBoxに追加します。TextBoxにはCommandプロパティが用意されていないため、Behaviorを作成します。Behaviorの基本は下記記事を参照してください。WPF下記記事ではCommandParameterを利用してboolを渡すCommandを実装しました。何でもプログラミング今回はBehaviorという機能を利用して同じCommandを実現します。Elm今回はチェックボックスのCommandを利用したアプリケーションを作成します。チェックを入れるとダイアログの背景がグレーに、外すと白になるアプリケーションを作成します。MVVM下記記事ではコンソールアプリケーションにてSodiumを実装しました。何でもプログラミング今回はSodimuをWPFのMVVMに対応させたバージョンを実装します。WPF下記記事で紹介いたしました構造において、Viewの差分更新は自動で行われるのですが、その他の部分は全て毎回作成することになっています。WPF下記の記事でMVVMを紹介しましたが、実装が冗長であるという問題がありました。ArchitectureをMVVMに適用します。WPF前回下記記事にて紹介しましたC#版のMVVMを、F#化したものを掲載いたします。何でもプログラミング実際には、冗長すぎる、mutableが頻発する、といった理由でこのままの記述方法を使うことはありません。簡単なカウンタアプリケーションをもとに説明していきます。C#のWPFアプリケーションプロジェクトを想定しています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。