日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。MVVM『「MVVMのメリット・デメリットを見つめなおす」を読んで』を読んでSilverlightで業務アプリを作るために越えるべき7つの壁(12)上記の記事を読んで、現場でSilverlightを使って開発してる人の声というのはとても参考になると思いました。私はというと、何かしらの課題や問題をどうやって解けるかということを考えるのが好きな人なので、上記の記事の中で取り上げられていたTextBoxのSelectedTextプロパティのようなDependencyPropertyじゃないプロパティをViewModelにセットする方法をコードビハインドを書いたり、カスタムコントロールを作ったりしないで実現してみるということをして遊んでみようと思います。id:wave1008さんは、カスタムコントロールというアプローチで、この問題に対処しています。SelectionChangedイベントをきっかけにしてViewModelのプロパティにTextBoxのSelectedTextプロパティの値を入れてやればOKと思ってたのでEventTriggerとChangePropertyActionを使ってやろうと思いました。ChangePropertyActionのValueプロパティにTextBoxのSelectedTextプロパティをバインドしたところまでは良かったのですが、SelectedTextは変更通知をあげてくれるプロパティではなかったので、うまいことChangePropertyActionから最新の値をとることが出来ないという問題が発生して断念しましたorz無ければ作ればいいじゃない?ということで、既存の部品が使えないとわかったら自作です。任意のプロパティの値を取得して任意のプロパティへセットするTriggerActionを作りました。}}SetPropertyActionを使ってみよう目的のTriggerActionが出来たので、使ってみようと思います。Prismの基本クラスを使ってViewModelを作成します。}}Viewはこんな感じで。</StackPanel></UserControl>TriggerとTriggerActionのコードは全部手書きだと辛いので自作のサポートツールを使ってXAMLを生成しました。Studioのデザイナでビヘイビアを設定したコントロールの右クリックメニューからBehaviorやTriggerを設定できるのでBlend持ってない人でもBehaviorを導入する敷居が下がると思います。実行してみよう実行してテキストボックスに適当な文字をうって選択すると、ViewModelに値が設定されているのがわかります。感想たったこれしきのことやるのに、Behaviorとか使うとえらい長いXAMLになっちゃいますね・・・。カスタムコントロール使うのとどっちがいいのだろうか。プロジェクトのダウンロードこのサンプルプロジェクトは以下からダウンロードできます。23:19コントロールのDependencyPropertyじゃないプロパティをViewModelに設定するTweet関連記事2016-04-28UWPでBindingのAncestorTypeを指定したい出来ません。疑似的にやるBehaviorを作ってみました。以...2016-01-24UWPでUserControlからメインページの画像を非表示にしたいという感じのフォーラムの質問があった(解決されてたけど)の...2012-06-11ListBoxに追加されたアイテムを一回だけアニメーションさせたいというプログラムのリクエストを受けたので作ってみました。...2011-04-05MVVMでファイルを開くダイアログを使う(View完結とViewModel経由)さて、今日はリクエストをもらいました。C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。Blogの内容は個人の見解であり、所属する企業を代表するものではありません。)はてなブログをはじめよう!okazukiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。