Livet

nameof 演算子

Visual Studio 2015 から nameof 演算子が追加されましたが、これ、かなり嬉しい機能ですね。C# はプレビューの段階から実装されてましたが、Visual Basic はプレビューの時点ではまだ計画中で実装されておらず、リリースに間に合わないのではと思っていただ…

Livetによる画面遷移と選択要素受け渡しのサンプル

MVVMパターンでよく問題となるのが、画面遷移 の問題です。 単一画面であれば、View と ViewModel をバインド機構を使って疎結合にできるため、なんら問題は生じませんが、画面遷移を行う場合、ViewModel から Window を起動すると View - ViewModel 間で密…

WPF で画面とユーザーコントロールの連携を考えてみた

ちょっと某所で質疑があがってたので、MVVMパターンにおける画面とユーザーコントロールの連携について考えてみました。 お題をかいつまんで言えば、こんな話です。 メインウィンドウと二つのユーザーコントロールが存在し、それぞれプロジェクトを分けて管…

VisualBasic で Livet の LivetWeakEventListener を使う

先日来、某所で WeakEvent パターンの話題があがってます。そこで Livet の弱参照パターンの話もちょろっとしてみたわけですが・・・でも VBユーザーだとどうだろう・・・VBユーザーの多くはラムダ式馴染みないし、EventHandler をパラメータで渡すコードが…

コードビハインドで Livet の EventListener を使ってみる

必要に迫られてちょっと考えてみました。しかしイベントの登録・解除・アクションの指定を集中管理できるので、いい感じです。 using Livet; using Livet.EventListeners; using System; using System.Windows; namespace LivetWPFApplication5.Views { publ…

Q096. DataGrid でセルの値を変えると背景色が変わるようにするには?

A.DataGridColumn.CellStyle にスタイルを定義し、トリガーを設定します。 以下は、Livet を使ったサンプルです。 まず Model に Person クラスを用意しました。名前と所属と住所だけの簡単なクラスです。ちなみに名前空間はコードの都合上、省略してますの…

BackgroundWorker を使用して進行状況ダイアログを作成する(WPF & Livet版)

必要に迫られ、DOBON.NET さんの以下の記事BackgroundWorkerクラスを使用して進行状況ダイアログを作成するを参考に、WPF & Livet で進行状況ダイアログを作ってみました。 ダイアログは Forms からも呼び出せることを想定したインターフェイスになってます…

Q090. WPF でタスクトレイアイコンを表示するには?

A.WindowsForms の NotifyIcon クラスを使用します。 WPF では残念ながらタスクトレイアイコンの機能が提供されていません。以下の記事で触れられてますが、WPF はプレゼンテーションライブラリだからということで、MS さんはサポートする気がさらさらない…

Livet をカスタマイズする(1.0.6.1版 VB.NET用)

以前のエントリからだいぶ日にちが経ち、Livet も 1.0.6.1 と大きくバージョンアップしました。それに伴い仕様も大きく変わり、VB ユーザーには少々使いづらくなったので、以前の改造だけじゃ足りない部分も増えてます。そこで最新バージョンに合わせ、Livet…

Q078. TextBoxの入力をカナや英数だけに制限したいが簡単な方法はないか

A.自分でロジックを組むこともできますが、GrapeCity の WPFコンポーネント InputMan for WPF に含まれている GcTextBox を使えば、入力制限を簡単に設定できます。InputMan for Windows Forms で長年培われた日本語入力技術がこのコンポーネントにも反映さ…

Livet の ViewModelCommand.RaiseCanExecuteChanged

Livet の Command クラス、ViewModelCommand で CanExecuteChanged メソッドが呼ばれるタイミングが判らないとのコメントを頂きました。 プロパティの状態によってコマンドの有効・無効を制御したいなら、セッター内で ViewModelCommand.RaiseCanExecuteChan…

Q077. コードビハインドを使わずに親から子に画面遷移するには?

A.Livet を使うとコードビハインドを使わずに画面遷移が可能になります。Livet では画面遷移のメッセージアクションが提供されているので、これを使うといいでしょう。 ケースよっては、子画面を起動したら親画面を非表示にしたい場合もあります。その場合…

Livet をカスタマイズする。

#以下の記事は旧いバージョンによる記事です。最新版はこちらを参考にしてください。 国産 MVVM インフラ「Livet」も徐々に普及しつつあるようで、MSDN フォーラムでもちょくちょく名前を聞くようになってきました。 私も業務で使い倒してますが、VB プロジ…

TreeView が配置された UI で Model-View-ViewModel パターンを使う方法(VB.NET)

TreeView にどう再帰的にデータを設定するか調べていたら、id:griefworker さんの以下の記事が見つかりました。 TreeView が配置された UI で Model-View-ViewModel パターンを使う方法 なるほど!HierarchicalDataTemplate を使えばいいわけですね!*1 以下…

郵便番号検索API を利用するサンプル

郵便番号検索API を利用して郵便番号から住所を検索するクラスを考えてみました。 郵便番号検索API は無料のサービスで、個人・法人・商用・非商用問わず利用できるたいへん有難いサービスです。ただし無償で公開されてるサービスですので、継続利用が保障さ…

Q063. WPF でショートカットメニューを表示するには?

A. ContextMenu を使用します。 以下、Livet を使った簡単なサンプルです。TextBox に ContextMenu を設け、右クリックでポップアップを表示、選択したメニューを TextBox に表示します。

Livet で Messenger を使ってみる(その四)

なんか某所で、先日のエントリから話が発展して、かなり盛り上がってた(?)ようなので・・・ コードビハインドがどーのと言ってましたが、本来なら以下のようにすべきで、コードビハインド使う必要ないと思うんですがねぇ・・・。

Livet で Messenger を使ってみる(その参)

本日はさらに踏み込んで、Livet が提供するメッセージングアクションのうち InformationDialogInteractionMessageAction ConfirmationDialogInteractionMessageAction OpenFileDialogInteractionMessageAction SaveFileDialogInteractionMessageAction の四…

Livet で Messenger を使ってみる(その弐)

昨日のエントリーのサンプルではつまらないという貴方に、さらに発展させた使い方を考えてみました。 たとえばこんな感じ。コードビハインドを使わずに、コンボボックスで選んだ操作を ViewModel のコマンド経由で実行します。 まず ViewModel のコードです…

Livet の Messenger クラスを使ってみる

本日のエントリーでは、Livet の Messenger 機能をチュートリアル風に公開してみます。これを使うと、画面の終了・最大化・最小化・標準化を、コードビハインドを全く書かずに操作することができます。今回は Visual Studio と Blend を使っています。Livet …

WPF で Google Map API を使ってルート検索してみる(Livet版)

昨日 Google Map API でルート検索するサンプルを公開しましたが、本日はさらに一歩進め、先日のサンプルの Livet 版を作ってみました。 Livet は純国産の MVVM インフラで、先日最新版 0.98RC が公開されました。前のバージョンから大きく変わったとのこと…

Livet を使ってみた (by VB)

国内有数の MVVMer である尾上さんが開発中の Livet を触ってみました。 現在はまだドキュメントが整備されておらずどこから手を付けていいか判らない状態なので、まずはサンプルプロジェクトを触ってみようということに。ちなみに Livet って何という人のた…