2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

MVVMについて語ろう

1 :デフォルトの名無しさん:2012/06/06(水) 11:03:33.21 .net
WPF/Silverlight/WinRT開発の必須技術、MVVMについて語ろうではないか!

785 :デフォルトの名無しさん:2019/02/05(火) 22:50:39.27 ID:sDFzuzWu.net
>>778
>INotifyPropertyChanged はバインド専門ではありません。

これって詭弁だよね
MVVM使う時点で通常のモデルにすると不便だからINotifyPropertyChanged使うだけ

786 :デフォルトの名無しさん:2019/02/05(火) 22:57:59.44 ID:sDFzuzWu.net
MVVMじゃない設計で作られた モデル、ビジネスロジックがあってそれをMVVMで使う場合どうすんの?ってことなんだろうけど
もう一層外からくるんだだけじゃうまくいかないからほとんどを作り直しすることになるんじゃないかな?

787 :デフォルトの名無しさん:2019/02/06(水) 02:16:42.38 ID:ar/eio3d.net
>>783
何日も前のに突然どうしたw

>>785
MMV間は好きにすればいいかと
自分はわざわざMでINotifyPChangedなんか使わんけど

788 :デフォルトの名無しさん:2019/02/06(水) 09:39:48.85 ID:DbH07QrE.net
俺なんかMVCすらよくわかんないな
Webは兎も角、それ以外はMVCだと言われてるアプリを見てもCからVを書き換えてるのだらけに見えちゃうんだな
これでいいんか?それとも世の大半が間違えてるのか?どっちなんだ

789 :デフォルトの名無しさん:2019/02/06(水) 12:24:14.98 ID:ar/eio3d.net
Cからvだけでしかないってのはダメだと思うが、結局その場合にちょうどいい程度に疎結合になってればいいと思うけどね
自分はMVにロジックも詰め込んで、でかくなってきたらMにする程度でやってる

790 :デフォルトの名無しさん:2019/02/11(月) 03:23:52.16 ID:h3xrvU+a.net
いつも疑問なんだけどMVVMでダイアログ表示するときなんでVMでShowDialog()しちゃいかんの?
MessengerでViewに送ってコールバックでってやるよりもVMをDataContextにぶっこんで直接操作したほうがわかりやすくない?

791 :デフォルトの名無しさん:2019/02/11(月) 04:01:02.71 ID:KW1QXsfq.net
>>790
MVVMのVMは、UIへの依存を排除することを試みるパターン。
なので、直接呼んで良いかと問われればNo

UIの知識に起因する処理を行いたいのであれば、UIから提供されたインターフェースを介してUI操作を行うMVPの採用を検討する。

結局のところ、MV*の違いは責任範囲の違いだけであり、MVPがMVVMよりV寄りに広いパターンなので、MVVMをベースにMVPにしても構わない。

ただしその場合、混乱の元なのでMVVMとは呼称すべきではない。

792 :デフォルトの名無しさん:2019/02/11(月) 12:20:24.20 ID:YckZaLLU.net
>>790
ぶっ込んで直接操作が何を指してるのかわからん。
そのダイアログを表示がらみだと思うけどもうちっと具体的に言ってくれ。
元のViewと対応したVMがあったとして、そこからダイアログ表示させる場合でいいんだよね?

793 :デフォルトの名無しさん:2019/02/11(月) 13:34:01.09 ID:NWPg0Oyv.net
>>792
すまん、説明が悪かったかも
あと無意識にWPFを前提に話してしまっていた

MainWindow
MainWindowViewModel
MainWindowModel

DialogWindow
DialogWindowViewModel

があったとしてMainWindowのボタン押下をトリガーにDialogWindowを表示したいとする
でWPFの昨日でVMにコマンドバインディングしていたボタンの処理の中で
DialogWindowのDataContextにDialogWindowViewModelを入れる
→MainWindowViewModelの中でDialogWindowのインスタンスを生成する

みたいな感じ

794 :デフォルトの名無しさん:2019/02/11(月) 15:12:43.09 ID:QkJqimZ7.net
VMからVを直接生成するのは禁じ手かと
てスタビリティーが担保できない

795 :デフォルトの名無しさん:2019/02/16(土) 02:23:43.23 ID:9HG1VuDS.net
7年前から何も状況変わってなくてワロス

796 :デフォルトの名無しさん:2019/02/16(土) 02:52:06.72 ID:9HG1VuDS.net
https://teratail.com/questions/74961
わからないやつは使うな!
でほんとに使わなかったケースが多かっただけみたいだな
ユーザーの質がほんとひどい
難しい案件でだけ使えばいいがな

797 :デフォルトの名無しさん:2019/02/16(土) 09:30:22.31 ID:9K5d8FVn.net
自分は自分で作るちょいアプリでも使ってるけどな
といってもVM膨らませてMもそこでやってて、ややこしくなったら分離させてるだけだけど

798 :デフォルトの名無しさん:2019/02/16(土) 19:22:44.93 ID:PhVDH7kZ.net
WPF+MVVMはテストがつらい
M、VMでテストが出来てても実際にVでうまく動くかは全然わからない

799 :デフォルトの名無しさん:2019/02/16(土) 20:37:11.87 ID:9K5d8FVn.net
>>798
ん?それほかのUIフレームなら出来るん?

800 :デフォルトの名無しさん:2019/02/16(土) 20:48:59.47 ID:mveZudXk.net
アプリケーションのテストとしてはVM-M間で十分だと思うがな。
V-VM間はデータバインディングが意図通りか確認する程度だし。
少なくともFormsよりだいぶUIに近いところまで自動テストできるようになった。

801 :デフォルトの名無しさん:2019/02/17(日) 03:18:26.01 ID:xGFF6jRx.net
>>798
ViewはMVの状態をそのまま表示するだけってのが理想だからね
セレニウムだっけ?WEBでのUIテスト出来る奴とかあるかもだけど、自動テストでそこまでの工数かけるのちときつくね?
VMのテストならプログラム的にしやすいからまだわかる

802 :デフォルトの名無しさん:2019/03/17(日) 03:07:47.90 ID:ZfsC9V3u.net
>>698
バカには使えないありがたいアーキテクチャなので
普及とかはどうでもいい話だった

803 :デフォルトの名無しさん:2019/03/17(日) 08:02:38.52 ID:F89k9A+v.net
VisualWorksのPluggable MVCとどう違うのだろうか?

804 :デフォルトの名無しさん:2019/03/17(日) 18:31:05.56 ID:drnV2zGh.net
Pluggable MVCとはだいぶちがうだろう
Application Modelの間違い?

805 :デフォルトの名無しさん:2019/03/17(日) 22:43:26.65 ID:F89k9A+v.net
>>804
ValueHolder、AspectAdaptor、PluggaleAdaptorとか

806 :デフォルトの名無しさん:2019/03/17(日) 22:56:42.27 ID:drnV2zGh.net
ああ、そういうことか
もっと古典的でプリミティブなものを指しているのかと思った
http://aokilab.kyoto-su.ac.jp/documents/MVC/page4.html

807 :デフォルトの名無しさん:2019/03/17(日) 23:43:40.49 ID:F89k9A+v.net
結局、ビュー寄りのモデルを作るという発想は90年代初頭にVisualWorksで提唱されていたんじゃないかと。

808 :デフォルトの名無しさん:2019/03/18(月) 01:01:31.84 ID:Y1evCyMB.net
まあその結論で合っているんだけど

ただValueHolderとかのアダプターはあくまで
ApplicationModelのプロパティでデータバインドを実現するための道具に過ぎないので
https://matarillo.com/general/uipatterns.php#p3

MVVMとの類似性に言及するのであれば
Pluggable MVCではなく「ApplicationModelアーキテクチャ」と表現する方が誤解が無くてよいと思う
http://wiki.c2.com/?ModelModelViewController

809 :デフォルトの名無しさん:2019/03/18(月) 01:37:38.06 ID:QCOM2t0u.net
もともとMVCとかでごちゃごちゃしてきたところにMVVMってことなんだろうな
デスクトップアプリに当てはめるのは微妙だったよ

810 :デフォルトの名無しさん:2019/03/18(月) 07:19:28.89 ID:Y1evCyMB.net
いやそういう基本的な理解の欠如ではない

811 :デフォルトの名無しさん:2019/03/18(月) 09:45:01.81 ID:npgehNDX.net
デスクトップに当てはめるのが微妙ってのは何だ?仮想Dom的なものがあればおさまる話?

あとMVVMはMVCを改良したってよりもXAMLのバインディング気候に合わせたって側面の方が強いと思うがな
それを改良と言えばそうだけど

812 :デフォルトの名無しさん:2019/03/18(月) 11:53:25.70 ID:sCXVSnIM.net
もしや810はMVCとMVC2を混同してるとか?

813 :デフォルトの名無しさん:2019/03/19(火) 03:35:07.74 ID:3jNcVOgT.net
実装者の能力不足が問題になるということは設計パターンが悪いんだろ
本当に理解してるか確認するが難しいようなのもダメだ

814 :デフォルトの名無しさん:2019/03/19(火) 21:56:18.31 ID:RkrxeYqz.net
バインディングで楽が出来れば、それで満足よ

815 :デフォルトの名無しさん:2019/03/19(火) 22:06:06.31 ID:+Ccy7x/V.net
>>814
楽できるかどうかじゃなくて、
画面を直接触らずに済むかどうかの問題だろ。

816 :デフォルトの名無しさん:2019/03/22(金) 00:42:05.87 ID:piAmWzDj.net
こりゃ天才ですわ
https://qiita.com/hiki_neet_p/items/e381c687b0644c0e4978

817 :デフォルトの名無しさん:2019/05/30(木) 12:04:36.21 ID:v6SxCCrX.net
暇だから数年ぶりにWPFでも触ってみようかなと思ってるけど、
乱立してた結局MVVMライブラリって結局何かに統一された?
Livetは死んでしまったみたいだねw
個人的には応援してだけど

818 :デフォルトの名無しさん:2019/05/30(木) 19:49:16.08 ID:YQby5rNV.net
>>817
統一されたかどうかは分からんが、

https://github.com/XamSome/awesome-xamarin/blob/master/README.md#mvvm

によると、ReavtiveUI, MVVVCross, Prismあたりが人気らしい

819 :デフォルトの名無しさん:2019/05/30(木) 19:50:47.36 ID:YQby5rNV.net
>>818
typo
x MVVVCross
o MVVMCross

820 :デフォルトの名無しさん:2019/06/19(水) 05:03:53.74 ID:tVNS+22r.net
【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/

821 :デフォルトの名無しさん:2019/07/27(土) 02:26:32.72 ID:0sBDs5f5.net
むっちゃ初歩的なところの質問になってしまうのですが、
WPF + Prismの環境で、画像ファイル(png)をウインドウ内にタイル状に並べたいのですが、
単体でパスをSourceに指定して、Converterを通して表示、までは出来たのですが、
これをListView上でおこなおうとすると、ListviewにBindingしているObservableCollectionにAddしても、
画像が表示されません。
何かわかりやすいサンプルや、チュートリアルなどありませんでしょうか?

822 :デフォルトの名無しさん:2019/07/27(土) 03:17:09.73 ID:l8PDbbg2.net
>>821
チュートリアルは知らんが、リストにテキストやボタンは表示できるの?
出来るなら今単体でコレクションの要素とビューテワやってる関係を同じようにするだけだけど

823 :デフォルトの名無しさん:2019/07/27(土) 10:04:07.36 ID:0p0d4tKK.net
>>821
ListViewのTemplateをGridViewとしDataTemplate使うんじゃなかった? よく知らんけど。

824 :デフォルトの名無しさん:2019/11/01(金) 18:07:00.51 ID:hqW7WiA1.net
>>821
どんな見た目作りたいの?

825 :デフォルトの名無しさん:2020/07/02(木) 15:07:15.93 ID:WhLcbIiC.net
MMVMで言語を作る!

826 :デフォルトの名無しさん:2020/07/02(木) 17:47:32 ID:WhLcbIiC.net
LLVMと勘違いした

827 :デフォルトの名無しさん:2021/01/27(水) 11:51:54.98 ID:cJSBZXf9.net
てす

828 :デフォルトの名無しさん:2021/01/27(水) 23:40:32.54 ID:7/w7pDgL.net
Win Formsでやってる人いますか?
datagridviewで値によってセルの色を変える場合、どのようにしてますか?

829 :デフォルトの名無しさん:2021/01/28(木) 01:44:53.83 ID:aQj0oWVr.net
>>828
BindingListへの追加・変更・削除がイベントで拾えるので、
そのイベントハンドラで状態に応じてセル変更すればいいんじゃね?

汎用化するのであれば、BindingListを[M]、Gridを[V]とみなし、
その間を取り持つPresenterに移譲させるMVPパターンにするとかか

めんどくさがりやなので、前者でお茶を濁すかなぁ

830 :デフォルトの名無しさん:2021/01/29(金) 20:29:07.30 ID:czxZDJRE.net
MVVMはバインディングを活用するために考案されたパターンなので、WinFormsでは実践できません

831 :デフォルトの名無しさん:2021/02/02(火) 19:09:08.24 ID:LnwudBv/.net
ユーザーメリットなしのオナニー

832 :デフォルトの名無しさん:2021/02/02(火) 21:40:04.70 ID:WEqR7ZrT.net
ユーザーってのがアプリユーザならその通り
開発者は恩恵受けてるよ

833 :デフォルトの名無しさん:2021/04/06(火) 11:03:35.23 ID:A0Gb+cSU.net
MVVM おっそ。
イベント発生元からトンネル経由しない前に捕まえて、View->ViewModelのイベントデリゲート呼ぶのが一番速い。
Commnad Bindingなんか使ってられない。 遅くて・・・

834 :デフォルトの名無しさん:2024/02/29(木) 21:06:03.14 ID:xliFyZcDB
拉致ガーだの個人の尊厳や人権の意義だの都合のいい昔話ほさ゛いてる松野博一は朝鮮人大勢殺害した過去についても触れろよ
大量破壊兵器クソ航空機による強盗殺人という重大な人権侵害もスルー、税金て゛地球破壊支援.世界最悪の脱炭素拒否テロ国家に送られる
化石賞4連続受賞して世界中から非難されていながら力による一方的な現状変更によって滑走路にクソ航空機にと倍増
閑静な住宅地から都心まで数珠つなぎで鉄道の30倍以上もの莫大な温室効果ガスまき散らして騒音まみれ、静音が生命線の知的産業壊滅
子供の学習環境破壊、気侯変動させて海水温上昇させてかつてない量の水蒸気を日本列島に供給させて土砂崩れ、洪水、暴風,熱中症にと
住民の生命と財産を徹底的に破壊することで私腹を肥やす世界最惡のマッチポンプ殺人テ口組織公明党天下り犯罪集団国土破壊省斉藤鉄夫
とともに好き放題破壞と殺戮を繰り返して隣国挑發して原爆落とした世界最悪ならず者国家まで崇拝して白々しい軍拡増税
物事の本質を理解できない孑供洗脳して兵隊にして私腹を肥やそうというテロ組織に乗っ取られた日本で子なんか産むのは相当の盆暗だけ
(ref.) Тtps://www.call4.jр/info.php?ΤУрe=iтems&id=I0000062
ttРs://haneda-Ρroject.jimdofree.com/ , ttps://flight-route.com/
ttps://n-souonhigaisosyoudan.amebaownd.com/

186 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★