You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
2019/6/2 追記 内容を大幅に見直した改訂版を書きました。 【改訂版】PrismとReactivePropertyで簡単MVVM! 2018/3/27 追記 今までViewModelがPlain Objectのままのコードを掲載しておりましたが、Plain ObjectをViewにバインドするとメモリリークになってしまうそうです。 参考リンク : http://aridai.net/article/?p=15 本記事中のViewModelのコードを修正いたしました。 大変失礼いたしました。 最近になってWPFで作りたいものができたので、勉強したことをメモしてみたいと思います。 WPFには強力なデータバインド機能が備わっていますが、何も考えずWindows Formsの頃のようにコードビハインドへ記述するやり方では、この機能を活かすことはできないんですね。 そこでプログラマーは、できる
ユーザー操作に応じて表示内容が大幅に入れ替わる、画面遷移風、ウィザード風のWPFアプリケーション。 Visual Studio 2010でユーザー・インターフェイス開発 - @IT の例では、コンテンツ領域を切り替えるボタンのイベントハンドラに、コンテンツ領域を生成するコードを書いている。 private void SwitchContent(string senderName) { switch (senderName) { case "MenuObentoOrder": ContentControlMain.Content = new ContetObentoOrder(); ChangeRibbonTabVisibility(senderName); break; case "MenuObentoEntry": ContentControlMain.Content = new Con
Livet WPF4 MVVM インフラストラクチャ ProjectHome : http://ugaya40.net/livet SourceCode : https://bitbucket.org/ugaya40/livet/ Livetの概要と導入方法 LivetはWPF4のためのMVVM(Model/View/ViewModel)パターン用インフラストラクチャです。.NET Framework 4 Client Profile以上で動作し、zlib/libpngライセンスで提供しています。zlib/libpngライセンスでは、ライブラリとしての利用に留めるのであれば再配布時にも著作権表示などの義務はありません。しかし、ソースコードを改変しての再配布にはその旨の明示が義務付けられます。 Livetの目指すところ 現在、WPFでMVVMパターンによる実装を行うにはインフラストラクチャの
よくTwitter上などでMVVMパターンの学習は難しいという話を聞きます。最近その理由と認識のずれが少しづつ解ってきたので、書いてみる事にしました。 ネット上には様々なサンプルコードがありますが、「MVVMパターンを使う」という視点で学習する場合、用意した開発環境によって学習する事は異なってきます。 何故なら、設計パターンの思想の再現度は「その設計パターンのためのライブラリと環境」によって大きく異なるものだからです。 ASP.NET MVCが導入できない状況でASP.NET MVCをやろうとしますか?。そんな事をしようとすると業務ドメインのロジックに注力するどころか、MVCの概念を正しく理解しているのはもちろんの事、ASP.NETパイプラインの仕様に詳しく精通している必要もあります。他の環境(例えばRubyにおけるRails)でMVC補助がどうやって成立しているかも踏まえた上でインフラス
MVVMパターン的な実装は、他のプラットフォームでは選択肢の一つにすぎませんが、WPF/Silverlight(Windows Phone 7 含む)においては唯一の選択肢です。コードビハインドを書かないことはMVVMパターンそのものの定義とは関係ありません。まずはスキルにあったレベルでMVVMパターンを意識した実装を初めてみませんか? 以前の勉強会発表資料(わんくま勉強会での発表資料の半分以上をカットし、Androidテスト祭り分追加)を加工し、社内勉強会、そのほかの勉強会・ブログなどで自由に使える資料として公開します。私の個人名は抜いてあります。 無許可の改変・引用なども問題ありません。ただ、資料の直接の商用利用などはご遠慮ください。 ブログに張り付けたい場合、下のbマークから埋め込み用URLを取得できます。 「コードビハインドを書くのはMVVMパターンではない」などの誤解が、MVVM
■MVVMパターン これまでの説明でも用語として少し出てきたが、WPFによるGUIアプリケーション開発では(特に、アプリケーション規模が大きい場合)、Figure 4に示すような、ビューとモデルの間に「ビューモデル」と呼ばれるものを挟んだ3階層アーキテクチャで作成する場合が多い。このようなアーキテクチャ・パターンを、「MVVM(Model-View-ViewModel)パターン」と呼ぶ。 Figure 4: ビュー、ビューモデル、モデルの3階層構造 ビューモデルからビューへの表示変更の通知は、INotifyPropertyChangedインターフェイスの実装を通じて行われる。逆に、ビューからビューモデルへのコマンド(状態変更)の通知は、ICommandインターフェイスの実装を通じて行われる。 MVVMパターンは、有名なMVC(Model-View-Controller)パターンと同種のアー
ビューとモデルを疎結合するコマンドを解説。さらに、データ・バインディングとコマンドの仕組みを使ったWPFアプリのアーキテクチャ・パターンMVVMを紹介。 連載目次 前回に引き続き、ビューとモデルの疎結合を実現するための仕組みの1つである、「コマンド」という機能について説明する。また、データ・バインディングとコマンドの仕組みを使ったWPFアプリケーションのアーキテクチャ・パターンである「MVVM(Model-View-ViewModel)パターン」についても紹介する。 ■GUIアプリケーションに対する要件 前回も行ったように、WPFのコマンドの仕組みを説明する前に、コマンドに関連するGUIアプリケーションに対する要件を整理してみよう。 ●意味論的なイベント処理(コマンド) 一般的なGUIアプリケーションでは、マウスのクリックやキーボードからの入力など、実操作レベルのイベントをそのまま処理する
注意 このページにアクセスするには、承認が必要です。 サインインまたはディレクトリの変更を試すことができます。 このページにアクセスするには、承認が必要です。 ディレクトリの変更を試すことができます。 コードは MSDN コード ギャラリーからダウンロードできます。 オンラインでのコードの参照 目次 秩序と混乱 Model-View-ViewModel の進化 WPF 開発者に MVVM が好まれる理由 デモ アプリケーション 中継コマンド ロジック ViewModel クラス階層 ViewModelBase クラス CommandViewModel クラス MainWindowViewModel クラス ViewModel に View を適用する データ モデルとリポジトリ 新しい顧客のデータ入力フォーム All Customers ビュー まとめ 専門的なソフトウェア アプリケーショ
落とし穴シリーズ(にするつもりは無いのですが)の続きです。 本当は、動的バインドの話を書こうと思ったのですが、ItemsSourceプロパティにバインドするときの注意を忘れてました。 DataGrid コントロールのItemsSourceプロパティには、配列やListコレクションなどが渡せます。最近はジェネリックの流行りが功を奏して(かな?)、List<>を渡す場合が多くなっています。 実は IList と List<> の違いどころを間違えるとややこしいことになるのですが、それは別の機会には話します。型チェックのキャストでは List<> の方が不利なんです。型が2つあるからね。 さて、先日のDataGridのソースでは List<> を渡しました。 ページクラスのコンストラクタを改めてみてみると、次のようになっています。 public PageGrid() { InitializeCo
まだ使い始めてない人は、以下の記事を一気に読んでしまいましょう。 日本語 WPF のための MODEL-VIEW-VIEWMODEL (MVVM) デザイン パターン (matarillo.com: UIパターンも参考になります) 英語 WPF Toolkit - January 2009 Release (各種ライブラリ) Tips & Tricks Windows Presentation Foundation - WindowsClient.net (ポータル) WPF Application Quality Guide WPF Docking Library その他、余力があれば以下のアーキテクチャ系も押さえておきましょう Layered Architecture Sample for .NET Litware HR - A Multitenant sample applicati
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く