MVVMについて語ろう
■ このスレッドは過去ログ倉庫に格納されています
WPF/Silverlight/WinRT開発の必須技術、MVVMについて語ろうではないか! >>783
無知が顔真っ赤にしてテラワロスっておまw
そんなんがほんとに面白い人とかいるのかね
MVVMはどこいったのw
スレタイと何も関係ない書き込みしちゃって頭おかしくないのボンクラwwww いやテラワロスってのはMVVMなんだろうな
無知なのでわからんわ >>779
>INotifyPropertyChanged はバインド専門ではありません。
これって詭弁だよね
MVVM使う時点で通常のモデルにすると不便だからINotifyPropertyChanged使うだけ MVVMじゃない設計で作られた モデル、ビジネスロジックがあってそれをMVVMで使う場合どうすんの?ってことなんだろうけど
もう一層外からくるんだだけじゃうまくいかないからほとんどを作り直しすることになるんじゃないかな? >>784
何日も前のに突然どうしたw
>>786
MMV間は好きにすればいいかと
自分はわざわざMでINotifyPChangedなんか使わんけど 俺なんかMVCすらよくわかんないな
Webは兎も角、それ以外はMVCだと言われてるアプリを見てもCからVを書き換えてるのだらけに見えちゃうんだな
これでいいんか?それとも世の大半が間違えてるのか?どっちなんだ Cからvだけでしかないってのはダメだと思うが、結局その場合にちょうどいい程度に疎結合になってればいいと思うけどね
自分はMVにロジックも詰め込んで、でかくなってきたらMにする程度でやってる いつも疑問なんだけどMVVMでダイアログ表示するときなんでVMでShowDialog()しちゃいかんの?
MessengerでViewに送ってコールバックでってやるよりもVMをDataContextにぶっこんで直接操作したほうがわかりやすくない? >>791
MVVMのVMは、UIへの依存を排除することを試みるパターン。
なので、直接呼んで良いかと問われればNo
UIの知識に起因する処理を行いたいのであれば、UIから提供されたインターフェースを介してUI操作を行うMVPの採用を検討する。
結局のところ、MV*の違いは責任範囲の違いだけであり、MVPがMVVMよりV寄りに広いパターンなので、MVVMをベースにMVPにしても構わない。
ただしその場合、混乱の元なのでMVVMとは呼称すべきではない。 >>791
ぶっ込んで直接操作が何を指してるのかわからん。
そのダイアログを表示がらみだと思うけどもうちっと具体的に言ってくれ。
元のViewと対応したVMがあったとして、そこからダイアログ表示させる場合でいいんだよね? >>793
すまん、説明が悪かったかも
あと無意識にWPFを前提に話してしまっていた
MainWindow
MainWindowViewModel
MainWindowModel
DialogWindow
DialogWindowViewModel
があったとしてMainWindowのボタン押下をトリガーにDialogWindowを表示したいとする
でWPFの昨日でVMにコマンドバインディングしていたボタンの処理の中で
DialogWindowのDataContextにDialogWindowViewModelを入れる
→MainWindowViewModelの中でDialogWindowのインスタンスを生成する
みたいな感じ VMからVを直接生成するのは禁じ手かと
てスタビリティーが担保できない https://teratail.com/questions/74961
わからないやつは使うな!
でほんとに使わなかったケースが多かっただけみたいだな
ユーザーの質がほんとひどい
難しい案件でだけ使えばいいがな 自分は自分で作るちょいアプリでも使ってるけどな
といってもVM膨らませてMもそこでやってて、ややこしくなったら分離させてるだけだけど WPF+MVVMはテストがつらい
M、VMでテストが出来てても実際にVでうまく動くかは全然わからない >>799
ん?それほかのUIフレームなら出来るん? アプリケーションのテストとしてはVM-M間で十分だと思うがな。
V-VM間はデータバインディングが意図通りか確認する程度だし。
少なくともFormsよりだいぶUIに近いところまで自動テストできるようになった。 >>799
ViewはMVの状態をそのまま表示するだけってのが理想だからね
セレニウムだっけ?WEBでのUIテスト出来る奴とかあるかもだけど、自動テストでそこまでの工数かけるのちときつくね?
VMのテストならプログラム的にしやすいからまだわかる >>698
バカには使えないありがたいアーキテクチャなので
普及とかはどうでもいい話だった VisualWorksのPluggable MVCとどう違うのだろうか? Pluggable MVCとはだいぶちがうだろう
Application Modelの間違い? >>805
ValueHolder、AspectAdaptor、PluggaleAdaptorとか 結局、ビュー寄りのモデルを作るという発想は90年代初頭にVisualWorksで提唱されていたんじゃないかと。 まあその結論で合っているんだけど
ただValueHolderとかのアダプターはあくまで
ApplicationModelのプロパティでデータバインドを実現するための道具に過ぎないので
https://matarillo.com/general/uipatterns.php#p3
MVVMとの類似性に言及するのであれば
Pluggable MVCではなく「ApplicationModelアーキテクチャ」と表現する方が誤解が無くてよいと思う
http://wiki.c2.com/?ModelModelViewController もともとMVCとかでごちゃごちゃしてきたところにMVVMってことなんだろうな
デスクトップアプリに当てはめるのは微妙だったよ デスクトップに当てはめるのが微妙ってのは何だ?仮想Dom的なものがあればおさまる話?
あとMVVMはMVCを改良したってよりもXAMLのバインディング気候に合わせたって側面の方が強いと思うがな
それを改良と言えばそうだけど 実装者の能力不足が問題になるということは設計パターンが悪いんだろ
本当に理解してるか確認するが難しいようなのもダメだ >>815
楽できるかどうかじゃなくて、
画面を直接触らずに済むかどうかの問題だろ。 暇だから数年ぶりにWPFでも触ってみようかなと思ってるけど、
乱立してた結局MVVMライブラリって結局何かに統一された?
Livetは死んでしまったみたいだねw
個人的には応援してだけど >>819
typo
x MVVVCross
o MVVMCross むっちゃ初歩的なところの質問になってしまうのですが、
WPF + Prismの環境で、画像ファイル(png)をウインドウ内にタイル状に並べたいのですが、
単体でパスをSourceに指定して、Converterを通して表示、までは出来たのですが、
これをListView上でおこなおうとすると、ListviewにBindingしているObservableCollectionにAddしても、
画像が表示されません。
何かわかりやすいサンプルや、チュートリアルなどありませんでしょうか? >>822
チュートリアルは知らんが、リストにテキストやボタンは表示できるの?
出来るなら今単体でコレクションの要素とビューテワやってる関係を同じようにするだけだけど >>822
ListViewのTemplateをGridViewとしDataTemplate使うんじゃなかった? よく知らんけど。 Win Formsでやってる人いますか?
datagridviewで値によってセルの色を変える場合、どのようにしてますか? >>829
BindingListへの追加・変更・削除がイベントで拾えるので、
そのイベントハンドラで状態に応じてセル変更すればいいんじゃね?
汎用化するのであれば、BindingListを[M]、Gridを[V]とみなし、
その間を取り持つPresenterに移譲させるMVPパターンにするとかか
めんどくさがりやなので、前者でお茶を濁すかなぁ MVVMはバインディングを活用するために考案されたパターンなので、WinFormsでは実践できません ユーザーってのがアプリユーザならその通り
開発者は恩恵受けてるよ MVVM おっそ。
イベント発生元からトンネル経由しない前に捕まえて、View->ViewModelのイベントデリゲート呼ぶのが一番速い。
Commnad Bindingなんか使ってられない。 遅くて・・・ ■ このスレッドは過去ログ倉庫に格納されています