- 1 名前:デフォルトの名無しさん mailto:sage [2012/06/06(水) 11:03:33.21 .net]
- WPF/Silverlight/WinRT開発の必須技術、MVVMについて語ろうではないか!
- 321 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 13:57:56.40 .net]
- MVVMの定義に相当するものはVB6ではできんだろ。
MVPも厳しい。 おとなしく、モジュール分割をちゃんとした昔ながらのC/Sシステムっぽくやっていろ。 …っという話かな?
- 322 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 22:33:15.87 .net]
- クラスをちゃんと定義すりゃできるだろ
ライブラリで用意されてるインフラ全部自分で作らにゃならんけど
- 323 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 22:48:20.32 .net]
- VB6の仕様だけでインフラ作るのは厳しくないかね?
いや、API使ってフックレベルからやれば、そりゃ出来るだろうけど
- 324 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 22:52:44.04 .net]
- MVVMのどういう場面だ?
- 325 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 01:28:16.52 .net]
- VBだとクラスモジュールから
イベント送信できるんだから MVVMは実装しやすい方法言語だよ。
- 326 名前:デフォルトの名無しさん mailto:sage [2012/09/08(土) 12:02:20.04 .net]
- 可能性とかで語られてもな。
実際にそれを VB6 でやる気になるかい? って話も重要だろ
- 327 名前:デフォルトの名無しさん mailto:sage [2012/09/08(土) 12:30:15.15 .net]
- 「VB6 を やる気にならない」が正解
- 328 名前:デフォルトの名無しさん mailto:sage [2012/09/08(土) 12:58:28.48 .net]
- VBってまだ絶滅してないのか
何のためにMSはC#出したんだ
- 329 名前:デフォルトの名無しさん mailto:sage [2012/09/08(土) 23:34:49.46 .net]
- MSほど多様な製品を長期に渡ってサポートしてくれるとこは他にない。
VB6が世に出てから14年経つがWin8でも公式にサポートされた。 リプレースするにも金がかかるから動く限りは保守しながら使いたいって客は案
- 330 名前:O多いよ。 []
- [ここ壊れてます]
- 331 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 11:25:40.15 .net]
- そういう用途ならhost側で動かなくてもVMで動いてくれりゃ充分なんだが
- 332 名前:デフォルトの名無しさん mailto:sage [2012/09/21(金) 19:02:26.84 .net]
- VB早く消えてなくならないかなー
MSもサクッと切ればいいのに
- 333 名前:デフォルトの名無しさん mailto:sage [2012/09/21(金) 19:03:37.99 .net]
- リプレースに金がかかるかもしれないが保守にも金がかかる
- 334 名前:デフォルトの名無しさん mailto:sage [2012/09/21(金) 20:02:31.93 .net]
- 案外金が掛かった方が良いのかも知れない
払ってくれる相手なら
- 335 名前:デフォルトの名無しさん mailto:sage [2012/09/21(金) 21:11:01.59 .net]
- VB6からC#へのリプレースおいしいです
- 336 名前:デフォルトの名無しさん mailto:sage [2012/10/06(土) 11:05:26.15 .net]
- んで MVVMでアプリつくってるやついるの???
まじでいらねぇんだが.
- 337 名前:デフォルトの名無しさん mailto:sage [2012/10/08(月) 09:21:35.40 .net]
- 一つの画面でいろいろやるタイプのアプリには向かないのは事実
- 338 名前:デフォルトの名無しさん mailto:sage [2012/10/08(月) 19:09:14.56 .net]
- 一つの画面で色々やるというか、Vの作り込みの比重が多いアプリだとあんま活躍しないわな。
- 339 名前:デフォルトの名無しさん mailto:sage [2012/10/08(月) 20:43:24.80 .net]
- ツール類には向かんわな
せいぜい複雑なダイアログがあればそこに使う程度
- 340 名前:デフォルトの名無しさん mailto:sage [2012/10/08(月) 21:26:12.25 .net]
- 複雑なウィンドウなら複数のコントロールに分割すればいい話じゃね
- 341 名前:デフォルトの名無しさん mailto:sage [2012/10/13(土) 17:02:29.65 .net]
- メモリリークする原因がわからない
- 342 名前:デフォルトの名無しさん mailto:sage [2012/10/13(土) 17:08:27.07 .net]
- イベント
- 343 名前:デフォルトの名無しさん mailto:sage [2012/10/13(土) 19:31:26.75 .net]
- >>335
メモリを使っている人がいるんじゃないかな
- 344 名前:デフォルトの名無しさん [2012/10/14(日) 16:54:03.98 .net]
- 徐々にウェブの世界でも
MVVMが浸透してきたな。 MVCだけじゃ、いろいろ足りない。
- 345 名前:デフォルトの名無しさん mailto:sage [2012/10/14(日) 17:05:03.26 .net]
- >>335
こういうのでは? https://www.google.co.jp/search?q=mvvm+メモリーリーク&ie=UTF-8&oe=UTF-8&hl=ja
- 346 名前:デフォルトの名無しさん mailto:sage [2012/10/14(日) 20:38:40.26 .net]
- >>338
Ajaxとかだるすぎ WebはサーバーでHTMLを垂れ流すだけという低脳さが良いのに
- 347 名前:デフォルトの名無しさん [2012/10/16(火) 00:33:06.45 .net]
- >>340
テンプレート使ったこと無いの? サーバーでテンプレートに渡す値を 値そのまま渡せばそれがAjaxになる。 サーバーサイドアプリ - テンプレート処理 なのだから、確実にAjaxの方が簡単になってる。;
- 348 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 01:04:33.51 .net]
- 意味がわからない
テンプレートって普通サーバーで使うもんだろ? クライアント側でテンプレート使うってこと? それがサーバーでやるより簡単だと言える根拠は?
- 349 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 01:11:23.92 .net]
- どっちも簡単だろ。
jQueryみたいなライブラリが充実してきて笑えるぐらい簡単になった。 これが難しいってム板に居られる資質がないとしか思えん。
- 350 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 18:10:03.69 .net]
- >>342
サーバの負荷の関係上、サーバでテンプレートエンジン使わない方がいいとかもあるんだけど、 最近は、サーバから戻ってくるのはJSONオブジェクトとテンプレートで、クライアントでテンプレート エンジンかましてページを生成する方が良いような気がしてるよ。基本Ajaxで。 受けとったJSONオブジェクトを元に、自力でDOMを書き換えても良いし。
- 351 名前:デフォルトの名無しさん [2012/10/16(火) 20:40:35.72 .net]
- クライアントが以前より負荷が高くなるという問題もあるけれど、
以前というのはもう十数年前だったら問題になるというレベルで 今はクライアントは十分な性能を持ってるしね。 ブラウザ自体も速くなった。 それに比べるとネットワークはまだまだ遅いわけで、 テンプレートはローカルにキャッシュしておいて データ量を減らすほうが得策かな。 サーバー負荷も低くなるし。 これぐらいだれでも思っていることで、 普通サーバーでやるもんだろで終わってる人ってのは 何も考えてないとしか思えないけどw
- 352 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 20:43:20.12 .net]
- 一方Twitterは以前API直接たたいてJSONからDOM生成してたのが最近生成済みのhtml片を鯖から受け取るようになった
- 353 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:07:29.77 .net]
- 完全なAjaxができるならいいが、
普通そうはいかないもんな どうせサーバーで生成しなきゃいけないならなるべくサーバーにまとめちゃった方が楽
- 354 名前:デフォルトの名無しさん [2012/10/16(火) 21:18:45.66 .net]
- どっちみちAjaxは使わないといけないんだから
クライアントにまとめちゃったほうが楽
- 355 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:24:48.64 .net]
- Ajaxはオプションだろ
利便性のためにクライアントでAjax使ってバリデーションしたとしても、 どのみちサーバーでもやらないといけない
- 356 名前:デフォルトの名無しさん [2012/10/16(火) 21:30:02.30 .net]
- Ajaxはバリデーション以外で使うものって
わからないのか?w バリデーションなら単なるJavaScriptで良い
- 357 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:31:42.33 .net]
- >>350
JavaScriptでもいちいちバリデーションするの? バカ?
- 358 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:32:50.76 .net]
- JavaScriptでバリデーションが通ったら
サーバーでは検証せずにそのままDBに入れちゃうの? やばくねそれ
- 359 名前:デフォルトの名無しさん [2012/10/16(火) 21:34:43.44 .net]
- 話し理解できてないの?w
バリデーションをAjaxで行う=サーバーで通信して行うから、 そのバリデーションはサーバーでやってる事になるだろうって話だ。 あと、サーバーでやらないなんて一言も言ってない。 なんでこんなに文章読めないの?馬鹿なの?
- 360 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:36:01.79 .net]
- サーバとJavaScript両方でバリデーションするの?
マジキチ?
- 361 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:36:16.18 .net]
- >Ajaxはバリデーション以外で使うもの
>バリデーションなら単なるJavaScriptで良い さっきと言ってることが180度違うけど
- 362 名前:デフォルトの名無しさん [2012/10/16(火) 21:38:07.68 .net]
- うーん?
> Ajaxはオプションだろ >>349が オプションでやるって書いてあるじゃん。 みんな最初っから、両方でやるという前提で話してるんだが。 両方でやるのは、レスポンスを早くしてユーザビリティを上げ 無駄な通信を削減するため。言わなくても常識だと思っているが。
- 363 名前:デフォルトの名無しさん [2012/10/16(火) 21:38:54.60 .net]
- >>355
そりゃ、さっき言った人俺は別人だからねw
- 364 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:40:19.92 .net]
- みんなって誰?
マジキチは一人で十分なんだがw
- 365 名前:デフォルトの名無しさん [2012/10/16(火) 21:40:51.87 .net]
- >>358
みんな=お前以外
- 366 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:41:02.38 .net]
- ああ、別人という設定なんですね、わかります
- 367 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:41:14.80 .net]
- 鯖とJS両方で検証するだろうよ
検証はカスタム属性から自動生成でもしたらいいってかそういうのすでにある
- 368 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:43:13.41 .net]
- 一人だけ、程度の低い人が居ますね
- 369 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:45:12.56 .net]
- >>362
自己紹介は結構です
- 370 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:58:42.34 .net]
- 今時Ajaxだるいと言って済ませられるような、簡単なお仕事をしているぬるま湯な環境うらやましす
コストをかけずにAjaxやJSでのMVVMをどう実現するか試行錯誤している人が多い中で
- 371 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 21:59:49.81 .net]
- ×今時Ajax
○いまさらAjax
- 372 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 22:12:49.60 .net]
- クライアントにまとめるとか言って鯖から全件投げつけてクライアント側で検索やらせる奴とかが現れませんように
- 373 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 22:16:13.83 .net]
- >>366
それはさすがに見た事ないけど ページングせずに数万件の検索結果のレコードを送り付けてくるやつなら見た事がある。
- 374 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 22:16:48.57 .net]
- そのうちJavaScriptでクラサバやるわけですね
- 375 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 22:17:15.76 .net]
- node.js最強
- 376 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 22:20:02.67 .net]
- >>366
ASP.NET素人だとクライアント側にViewStateで全データを保管して、サーバー側でページングとか日常茶飯事だぜ?
- 377 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 22:22:07.06 .net]
- まーた、なんか低レベルの流れになってんなー
- 378 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 22:30:55.59 .net]
- 下見てもつまらないよ
- 379 名前:デフォルトの名無しさん mailto:sage [2012/10/17(水) 01:35:57.07 .net]
- Random Ravings of a Red Headed Code Monkey: Knockout.js Added to the F#/C# MVC 4 Single Page Application Template
bloggemdano.blogspot.jp/2012/10/knockoutjs-added-to-fc-mvc-4-single.html
- 380 名前:デフォルトの名無しさん mailto:sage [2012/10/21(日) 22:42:39.1
]
- [ここ壊れてます]
- 381 名前:4 .net mailto: なんか最近尾上の言うことがぶれすぎ
先月ぐらいから少しずつさりげなくぶれ始めてたんだが なにがあったんだ? コードビハインドとか頭おかしくなったのか? その内容自体は宗教だからどうでもいいが さんざん自分の考えと違うやつを罵倒してきた人間が そこまでころっと価値観変えてどうなんだ? [] - [ここ壊れてます]
- 382 名前:デフォルトの名無しさん mailto:sage [2012/10/21(日) 22:56:05.22 .net]
- コードビハインドを無理に排除しようとすると、どうしても
特定のビュー専用のビヘイビアがしばしば出てくる。 その場合無駄に煩雑になるだけで実質何のメリットもない。 彼も気付いちゃったんだよ。
- 383 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 06:04:37.89 .net]
- 単に自分の考えが甘かった、自分の見える世界だけしか見ていなかった事に気がついただけだろ。
ああいうキャラの人間はだいたいそんなもん。
- 384 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 08:48:01.98 .net]
- MVVMやっててWPFの仕組みがわかってくると、
意外とWPFのコードビハインドってよくできてることに気付くよね 正直、ビヘイビアは再利用できるものだけに限定して積極的にコードビハインド使うのがベストだと思う
- 385 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 09:20:38.69 .net]
- メッセージも多くの場合Vがインターフェイスを実装すれば十分
メモリリークガーとか言うけど、そんな大したことじゃないだろ。 参照管理の問題なんてどうせWPF関係ないところでも常に付きまとうのに、 それをコードビハインドの問題であるかのように大袈裟に騒いで、 WPFがまだよくわかってない人に変な先入観を植え付けている。
- 386 名前:デフォルトの名無しさん [2012/10/22(月) 09:41:07.23 .net]
- MVVMというより、Blend至上主義みたいな話になっちゃってるような所があったからな。
- 387 名前:デフォルトの名無しさん mailto:sage [2012/10/22(月) 12:14:52.36 .net]
- 本人はBlendを第一に考えてるようだしその辺だろうな
- 388 名前:デフォルトの名無しさん mailto:sage [2012/10/24(水) 00:05:27.67 .net]
- Blend 2012まだかよ
- 389 名前:デフォルトの名無しさん mailto:sage [2012/11/02(金) 12:07:46.01 .net]
- ViewModelのインターフェイスって意味ある?
- 390 名前:デフォルトの名無しさん mailto:sage [2012/11/02(金) 14:00:24.51 .net]
- Mや各種サービスからのコールバックに使うとか
コードビハインドでVからVMのメソッドを呼ぶときにV->VMを密結合させたくないとか そういうときには意味ある
- 391 名前:デフォルトの名無しさん mailto:sage [2012/11/02(金) 14:32:57.66 .net]
- まあ通常は継承ベースでいいと思う
- 392 名前:デフォルトの名無しさん mailto:sage [2012/11/04(日) 22:35:06.98 .net]
- >>383
コードビハインドってViewって認識なの? 否定じゃなくて単純に質問。
- 393 名前:デフォルトの名無しさん mailto:sage [2012/11/04(日) 22:49:04.80 .net]
- Viewとみなすのがふつう
ビヘイビアもコードビハインドの一形態なので同じくView
- 394 名前:デフォルトの名無しさん mailto:sage [2012/11/05(月) 20:21:18.14 .net]
- 結局
vmに置かれるviewに強く関係するけど 共通ロジックの置き場がない
- 395 名前:デフォルトの名無しさん [2012/11/05(月) 23:16:15.79 .net]
- 共通ロジックならUTILとかに置けばいいだろ?
- 396 名前:デフォルトの名無しさん mailto:sage [2012/11/05(月) 23:36:53.45 .net]
- >>386
Viewとみなすのは分かったんだけど VMじゃななくてVとみなす理由はなんなのかな?
- 397 名前:デフォルトの名無しさん mailto:sage [2012/11/05(月) 23:38:49.26 .net]
- >>389
ビューと不可分だから
- 398 名前:デフォルトの名無しさん mailto:sage [2012/11/05(月) 23:45:04.35 .net]
- >>390
WinFormsのコードビハインドなら不可分といえなくもないけど WPFはそうともいえないんじゃね?
- 399 名前:デフォルトの名無しさん mailto:sage [2012/11/05(月) 23:51:07.82 .net]
- >>391
この場合の不可分は「単体テスト可能かどうか」な。 ユーザーコントロールやウィンドウのクラスに対してXAMLを差し替えることは普通はできないし 無理矢理読み込むファイルを変えたとしてもコードビハインドからコントロールを直接触ってるから 結局ビューを表示して実際に操作してみないとテストできないわけ。 だからコードをビューから分離してビューなしでテストできるようにしましょうっていうのがVM。
- 400 名前:デフォルトの名無しさん mailto:sage [2012/11/06(火) 00:03:14.09 .net]
- >>392
なる
- 401 名前:ほどねー []
- [ここ壊れてます]
- 402 名前:デフォルトの名無しさん mailto:sage [2012/11/06(火) 00:05:46.84 .net]
- >>387
ViewModelsってフォルダにそういう機能のクラスを作ればええんや まーそもそも、Views、ViewModels、Modelsってフォルダ群もなんだかなーって気もするが そのほかのフォルダ構成でやってるやつおる?
- 403 名前:デフォルトの名無しさん mailto:sage [2012/11/06(火) 03:50:39.94 .net]
- フォルダ分けない方が楽な気はするがその3つにしてるな
- 404 名前:デフォルトの名無しさん mailto:sage [2012/11/06(火) 15:16:09.04 .net]
- М氏も「MVVM=コードビハインド無し」みたいな誤解撒き散らしてたし
「フルMVVM」って造語が誤解生んだのも事実 でもだからなんなの?勝手に誤解してずっこけたの本人のせいじゃん お前が元信者だから裏切られた感強いだけだろ
- 405 名前:デフォルトの名無しさん mailto:sage [2012/11/06(火) 16:34:58.61 .net]
- dynamicを積極的に使うのはどうだろう
VMがdynamic型でVへの参照を保持して動的にVのメソッドを呼ぶようにすれば、 メッセージやインターフェイスを介さなくてもVM->Vの密結合が避けられる。 dynamicなら完全に透過的なプロキシが使えるから、たとえばメモリリークの恐れがある箇所は WeakReferenceでビューへの参照を持ち、ビューがGCされたらnullオブジェクトとして振る舞う ようなプロキシを利用すれば、メモリリークの問題もコードの見た目を全く汚さずに解決。 型無しがダメだというならメッセージだって同じようなもんだよね。 (Vが当該メッセージをサポートしているかどうかはコンパイル時にチェックされないという意味で)
- 406 名前:デフォルトの名無しさん mailto:sage [2012/11/06(火) 17:03:56.14 .net]
- マルチキャストが必要な場合(メモリリークを避けるためにイベントを置き換えるとき)もこんな感じで
class HogeModel { //弱参照で複数のリスナへの参照を持つ複合プロキシ private WeakCompositeProxy listeners; public void AddListener(dynamic listener) { listeners.Add(listener); } private void RaiseSomethingHappened() { //登録された全てのリスナのOnSomethingHappenedメソッドを呼び出す //リスナがOnSomethingHappenedメソッドを持たない場合は何もしない ((dynamic)listeners).OnSomethingHappened(); } }
- 407 名前:デフォルトの名無しさん mailto:sage [2012/11/09(金) 04:16:24.83 .net]
- MVVMってメトロになってもやること変わらんの?
技術的にはあっちが本流だと思うんだけど
- 408 名前:デフォルトの名無しさん mailto:sage [2012/11/09(金) 09:11:57.38 .net]
- どうしてデザパタが環境によって変化すると思うんだw 技術じゃないぜ。概念だろ。
- 409 名前:デフォルトの名無しさん mailto:sage [2012/11/09(金) 10:13:41.46 .net]
- この手の概念って「ある一定の規則とか法則に名前をつける」
だけの話だからね。
- 410 名前:デフォルトの名無しさん mailto:sage [2012/11/09(金) 11:31:24.11 .net]
- コーディング段階は結構変わるがな
- 411 名前:デフォルトの名無しさん [2012/11/09(金) 22:45:20.26 .net]
- >>401
概念の話と 概念に名前をつけるって 話がごっちゃになってるよ。 概念に名前をつけるのは重要なことだが、 もちろん概念そのものも重要なことだぞ。
- 412 名前:デフォルトの名無しさん mailto:sage [2012/11/11(日) 00:32:37.19 .net]
- すいません、よかったら教えてください
MVVM Light Toolkitで遊んでるんですが、テンプレートから作成されるModelの IDataServiceのメソッドがActionを渡して結果をコールバックさせる形になっています 普通に戻り値や例外を返せばいいと思うのですが、あえてコールバックさせているのはなぜなんでしょう? 考えても理由がちっとも思いつかないので、もしわかったらお教えください よろしくお願いします
- 413 名前:デフォルトの名無しさん mailto:sage [2012/11/11(日) 00:36:08.24 .net]
- >>401
MVVM以前からMVVM的な物が存在していたということ?
- 414 名前:デフォルトの名無しさん mailto:sage [2012/11/11(日) 00:40:40.06 .net]
- >>404
処理に時間がかかる場合にGUIが固まるのを防ぐためだろ Webからデータを取ってくるような場合は言うまでもないが、 ローカルなファイルやデータベースからちょっと取ってくるくらいでも結構固まる
- 415 名前:デフォルトの名無しさん mailto:sage [2012/11/11(日) 00:53:11.62 .net]
- >>406
それはasync、awaitの非同期処理はModel内部で行ってServiceのメソッドをasync宣言しない方がよい ということでしょうか? Serviceのメソッド自体が非同期メソッドであれば画面が固まったりしないですよね? そこら辺も初めてさわったのでトンチンカンなこと言ってたらすいません
- 416 名前:406 mailto:sage [2012/11/11(日) 00:56:51.28 .net]
- あ、MVVM Light Toolkitは別にasync、awaitのサポート環境を限定してないからかな?
逆にいうとasync、awaitが使える環境ならば別にコールバックさせる必要はないってことでいいんでしょうか??
- 417 名前:デフォルトの名無しさん mailto:sage [2012/11/11(日) 00:57:16.17 .net]
- >>407
いやMVVM Light Toolkitは結構昔からあって、当時はasyncが無かっただけ U氏はasyncは内部で使うものであってインターフェイスに使うなとか 思い込みだけで頓珍漢なことを言ってたが 今からasync前提で作るなら普通に使っていいよ
- 418 名前:406 mailto:sage [2012/11/11(日) 01:01:22.02 .net]
- >>409
なるほど、納得しました サービスレベルでasyncにしてコールバックは利用しない方法でいってみます いろいろありがとうございました
- 419 名前:デフォルトの名無しさん mailto:sage [2012/11/12(月) 00:22:58.42 .net]
- >>409
うがやは、C#というか言語や.NETに関して知識なさすぎだからな。 ライブラリ設計者としてのセンスもない。
- 420 名前:デフォルトの名無しさん mailto:sage [2012/11/12(月) 20:04:14.60 .net]
- MVVMでユーザコントロール使う場合のお作法?で質問があります
Page内に異なるユーザコントロールが2種類AとBがあります Aはリストを表示するコントロールでBはその明細を表示するコントロールです AとBにはそれぞれ専用のVMを作ってバインドしています この時、A内のリストで選択されたものをBに渡したいのですがどう実装するのがスマートなんでしょうか? 現在は、PageのVMの中にAVMとBVMを保持していて、AVMのPropertyChangedイベント をPageのVMの中で拾ってBVMのプロパティに設定しています が・・・なんかいまいち感が 他にいいアイディアってあるのでしょうか?
- 421 名前:デフォルトの名無しさん mailto:sage [2012/11/12(月) 20:12:25.87 .net]
- ListBoxのItemsSourceにVMたくさん入ったコレクションセットして
ContentControlのContentか任意のViewコントロールのDataContextにListBoxのSelectedItemをバインドするのが楽じゃね
|

|