1 名前:デフォルトの名無しさん mailto:sage [2023/01/22(日) 05:53:16.97 ID:oY263ilm.net] WPF(Windows Presentation Foundation)について語るスレ。 前スレ WPF(.NET, WinUI) GUIプログラミング Part30 https://mevius.5ch.net/test/read.cgi/tech/1667010874/ 関連スレ Windows 10 UWPアプリ開発Part 3 https://mevius.5ch.net/test/read.cgi/tech/1627556967/ コードを貼る場合は以下のサイトの利用をお勧め。 https://ideone.com/
802 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 08:33:41.11 ID:wdqaA6jW.net] 効いてて草
803 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 08:57:39.75 ID:+QDwvDWv.net] 作りたいなら手を付ければいいのにな モックなりプロトタイプなり、人によっては基本設計なりスケッチなり、 やりたいアイデアがあるなら端からやってみればいい
804 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 10:14:20.56 ID:xxLsZdb0.net] >>775 フォントってモニターの解像度が高いと綺麗に見えるんだよ そんなことも知らずにフォント叫んでるのお前だけだからな
805 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 11:39:14.41 ID:Wl/qjPve.net] そういや、DATアクセスは8月まではフリーアクセスどうこう言ってるけど 運営は8月移行はどうなるかわからんとか言ったん?
806 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 14:14:58.58 ID:Wl/qjPve.net] うんこWinUI 3の最新版リリースされたやん Version 1.4 Preview 2 次がStableか つかさ、新しいItemsViewコントロールとか 最初 ListView/GridView で ItemsRepeater で ItemsView
807 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 14:19:30.21 ID:Wl/qjPve.net] The new ItemsView control displays a data collection. ItemsView is similar to the ListView and GridView controls, but is built using the ItemsRepeater, ScrollView, ItemContainer and ItemCollectionTransitionProvider components. It offers the unique ability to plug in custom Layout or ItemCollectionTransitionProvider implementations なんだItemsViewはItemsRepeaterなどの合体コントロールか で新しいレイアウトのLinedFlowLayoutと AnnotatedScrollBarか
808 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 14:33:48.82 ID:Wl/qjPve.net] ItemsRepeaterの問題は選択機能がなく、自前で実装(見た目とかも)しなきゃいけなく 億劫だったが ItemsViewはそこら辺もListView/GridView見たくやってくれるようなったんだよね?
809 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 20:28:42.15 ID:N/OxtUO+.net] ちゃんと手を動かして形にしてるだけ偉いと思うんだ 夏休みダラダラしてた俺とは天と地ほど差がある
810 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 20:43:28.47 ID:yJmfO0+S.net] 今はさすがに休もうよ 秋はコーディングの季節だ!
811 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 21:50:19.57 ID:m38bh0Ky.net] 近頃は秋なんかほとんどないけどね。
812 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 10:28:12.08 ID:ol1P3YlW.net] >>779 UI/UXは技術じゃなくセンスだけども、頑張って欲しい テーマを選べるだけでもいいかもしれないが あとやっぱり機能として、スレ立ては欲しいな
813 名前:デフォルトの名無しさん mailto:sage [2023/08/22(火) 22:27:09.72 ID:gdIlDAxT.net] Vmという接頭辞がついているのにviewmodelじゃなかったり、過去の使われなくなったコードが全部残ってたり、1クラスが1万行超えてたりetcetc おまけにそもそも設計のドキュメントは一切無い。外部向けの資料のみ。ひどい会社に来てしまった……
814 名前:デフォルトの名無しさん [2023/08/22(火) 23:11:38.63 ID:6gJfdiDb.net] JTCあるある
815 名前:デフォルトの名無しさん mailto:sage [2023/08/23(水) 00:06:39.19 ID:nS+GPZ+c.net] >>805 そういう愚
816 名前:sはマ板でやれ だからお前は駄目なんだよ [] [ここ壊れてます]
817 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 01:54:01.54 ID:9YaJu4I5.net] >>751 datのフリーアクセスって8月いっぱいなの?
818 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/08/24(木) 20:49:59.75 ID:FZQDzoDX.net] >>804 スレ立てテストできる板ってどこかにありますか?
819 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 20:56:22.03 ID:U1/Wc6cv.net] >>809 Anarchy実況 https://agree.5ch.net/liveanarchy/ 数分で消えるしdatも残らず消滅するから気楽にテストできる
820 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/08/24(木) 21:07:04.44 ID:FZQDzoDX.net] >>810 ありがとうございます。機能追加してみます
821 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 22:13:47.33 ID:Tz9EhHoC.net] がんばれ!
822 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 23:13:10.10 ID:ypVJRmCU.net] >>811 あのコードは何人で書いたんだ?
823 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 23:34:26.49 ID:Ax2+ubkj.net] どう見ても一人だろ
824 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 11:36:32.15 ID:UpJ7Bk8S.net] 初心者じゃないんだから、5chブラウザつくるとしても 少し挑戦的な事してここの視聴者楽しませてよ
825 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 12:52:15.75 ID:d6TpiO9T.net] ツマンネ。もっと気の利いたこと書き込めよ
826 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 14:29:43.74 ID:QKHGYPpz.net] コード見るとわかるけど違和感しか感じない C++?とか
827 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 14:37:18.36 ID:QKHGYPpz.net] ともかくいろいろとちぐはぐしてる 人に見られることを前提とした普通に自分で組むには不要なコメントとか 大きなサービスとか…
828 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 15:09:41.41 ID:hcnbZQTk.net] なんだそのふわっとした具体性のない指摘は 無理にケチ付けることないのに
829 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 15:24:12.70 ID:QKHGYPpz.net] コードを見ればわかるよ
830 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 15:35:06.57 ID:QKHGYPpz.net] もともとc++などを含めた他の言語で野良コードを書いてた人が ビジネス向けの専門学校みたいなところでC#を学んでDIとか色々知識があるような印象 そして丁寧にコードを書いてるけどまだC#が血肉にはなってないので元の癖が出る それか仲間の先生に当たる人が乱雑だったので変な癖が残っているか 誰か別の人間がところどころコードを書いたのかコピペしたのか
831 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 15:44:44.01 ID:FILnRN1t.net] 本当に具体性のない空っぽな指摘だな こういうのが上司につくと辛い
832 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:09:36.31 ID:UpJ7Bk8S.net] https://devblogs.microsoft.com/ifdef-windows/windows-community-toolkit-8-0-pre-release/
833 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:15:40.72 ID:lyifkqna.net] >>822 上司じゃなくてもキツイだろ 関わりたくねーわ
834 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:15:42.20 ID:QKHGYPpz.net] >>822 いやいや指摘でもなんでもない 違和感を書いてる そして何も気が付かないにぶーい人に自分の見解を伝えてる
835 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:28:24.81 ID:QKHGYPpz.net] このスレの他の人はオリジナリティの話をしてる 昔からあるドラマや漫画で出てくるような芸術作品や演奏に対する指摘のようなもので 君の作品には情熱が感じられない教科書通りでつまらないみたいな話 いまだとばらかもんが丁度似た様な話をしてる 自分は今現在はそこまでの話をする段階にないと思う 適当なところで切り上げて色々デザインして経験してみたほうがいい気がする その後に作ったものが自分が楽しんで使ってることに喜びを感じるレベルになれば人からもそういった面で良い評価を貰えると思う
836 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:41:00.84 ID:UpJ7Bk8S.net] せっかくアプリ作って公開しましたと面白そうなネタが投下されたが だめそうだな
837 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:56:06.42 ID:hcnbZQTk.net] それっぽいこと言って偉そうにしたいだけか どうりで中身が皆無なわけだ
838 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 18:25:05.72 ID:W2Um6gjp.net] アクロバティックなものを所望ならBlazor Hybridもいいと思うのよ 実用性あるかは別の問題として、前例のないことをやるという点は満たしてる
839 名前:デフォルトの名無しさん mailto:637 [2023/08/26(土) 22:00:12.76 ID:16WUCkmH.net] 書き方なんてどうでも良いのよ? ゲイツはみんなと違う画期的なコードで時代を切り開いた。
840 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 00:46:17.43 ID:W3b+7qIa.net] >>825 では俺も ID:QKHGYPpz のレスを見て指摘でなく違和感を書こうかな 誰の何の役にも立たない独り言なら、多数が集う掲示板でなくチラシの裏にでも書いて誰にも見せず捨てればいいのに 会話できず、するつもりもないと開き直るなら掲示板にくるのは無駄だし害悪ですらある これに気が付かないにぶーいID:QKHGYPpzに自分の見解を伝えてみた
841 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 09:09:39.66 ID:4wYaVVdN.net] お前の方こそブーメラン刺さってねw
842 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 11:36:52.09 ID:3H5CXIUM.net] >>830 どんなの?
843 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 12:46:27.21 ID:W3b+7qIa.net] >>832 そのとおりだよ。わざと >>825 を真似て醜悪な文面にしたのだから >>831 のレスは ID:QKHGYPpz の鏡だよ
844 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 12:58:47.33 ID:t0g5o5TS.net] そんなこともわからない>>832 の頭の悪さときたら ってことでしょ
845 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 13:51:55.91 ID:vknuNgDk.net] viewmodelsって対応するviewに表示するためのデータとロジックを持ってるって認識で合ってる? コード見てると他のviewmodelファイルでインスタンス化されたりプロパティが呼び出されてたりしててあれこういうのありなの?って
846 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 14:43:13.39 ID:Qf4ZUzrP.net] 例えばどのファイルのどこがおかしい、改善すべきと言わないと
847 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 21:19:33.66 ID:vknuNgDk.net] 機能修正の事前準備としてリファクタリングさせてください とか言ってもひとまず機能修正優先でとか動いてるんだから余計なことするなとか言われるのがオチだよね
848 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 21:40:22.11 ID:IUQW/AR/.net] もうその5chブラウザの事ほっとけよ 作者があまり顔出さないのに 作者不在のままここで毎回ゴタゴタが発生であほらしい ほっとくのが吉
849 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 19:25:42.52 ID:Ed5E1clR.net] 心理的安全性の低いスレだな
850 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 19:58:34.85 ID:BueC5+dS.net] 攻撃しても何もいいことはないのになあ… googleの本でも読めば良いのに
851 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 20:00:38.72 ID:BueC5+dS.net] ふと思ったことや感じたことを言うと叩かれる → 心理的安全性が低い 他人の行ったことを否定する → 心理的安全性が低い 本人に自覚がないのが恐ろしい
852 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 20:44:27.43 ID:QJ/DbKdl.net] マスゴミって批判しないで、記者が萎縮してしまいます。でも自分達は批判も攻撃もするけどね。みたいな二重基準?
853 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 21:29:09.23 ID:6uHv/wqC.net] 技術的な話とかに関して色々批判はいいと思うけど 最後は人格攻撃と不毛な事になるのが多いからなw
854 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/08/30(水) 09:16:29.73 ID:rmxbhQ8d.net] MVVMって例えばWPFでいうなら、VMでSystem.Windows名前空間をusingしないっていう認識で合ってる? 要はVMだけでOS非依存のdll化できるか
855 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 10:42:16.63 ID:mm/q7vOw.net] そんな定義は聞いたことないな
856 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 11:12:09.35 ID:FKrsdOsE.net] 究極の疎結合って意味では合ってる CommunityToolkit.mvvmもプラットフォーム非依存だし極端な話、上側がWinUI3でもVMそのまま動くってことでしょ ただ実際問題すげーめんどくさいとは思うがw
857 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 13:38:27.33 ID:Zjd+Qgp2.net] だね、5chブラウザのほうでViewModelでウィンドウクラス?を参照してたのは気になってた まぁ、最初の1回だけは勉強のためMVVMガチガチにやって頑張ってもいいし そこは本人次第
858 名前:mdysdev ◆XSDsAilQpD0E mailto:sage [2023/08/30(水) 14:56:17.68 ID:rmxbhQ8d.net] ありがとう、System.Windowsを分離してみる。 >>848 確かにWindowは分かりやすく「ん?」ってなるけど、 ClipBoardとかBitmapImageとかもみんなSystem.Windows配下なんだよね。 これらの処理を全部持ってくと、Viewにも結構ロジックが必要になりそう。 UIフレームワーク固有の機能なんだから疑問を持つのがおかしいのかもだけど
859 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 23:23:43.59 ID:I012WzjW.net] View固有の機能じゃなければ分離しなくてもよい
860 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 00:04:15.85 ID:tqam1yBh.net] その前にenumの機能のおさらいをしたほうが良い
861 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 01:17:12.25 ID:UxD03clT.net] MVVMといえばうちの会社でのプロジェクトでさぁ例えばだけどmodelにcircleクラスがあるとするじゃん んでそれをコンストラクタの引数に取るVmCircleなるクラスをわざわざ作るのよ。んでそれを各種viewmodel内部でいじるんだけど、VmCircleはCircleのviewmodelとか言ってるの おかしいでしょそれはviewmodelでもなんでもないでしょって言ったんだけどいやviewmodelだって これ俺がおかしいのか?
862 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 01:44:14.25 ID:k/7LWfvb.net] >>852 サーバサイドでも使う Entity とかを .NET Standard で共有して、 クライアントサイドではそれをINotifyPropertyChanged を実装したクラス (VM) に変換する必要がある、 もしくは将来的に変更通知が必要になる可能性を見越してそうしておく、 とかならありえなくはないんじゃない?
863 名前:デフォルトの名無しさん [2023/08/31(木) 07:06:57.56 ID:BoGIe8nI.net] >>845 変な理解しているな。 ViewModelでBitmap加工などは普通にやる。 当然、System.Windowsをusingする。 Viewのエレメントに直接アクセスするなという事だけ。 いわゆる委譲だな。 例えば、Viewにパラメーター渡すために、IxxxViewRepositoryインターフェースをViewに継承させ、そのレポジトリをViewModelにインジェクションすればそれでOK。 ContainerのChildrenは、ViewModelにダイナミック生成バインドできないので、Add、Remove、Move操作をそういう方法でやる。 DDDなどのクリーンアーキにチャレンジしてみれば、その辺はインチュイティブに理解できるようになるよ。
864 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 07:56:35.25 ID:UxD03clT.net] >>853 そもそもviewmodelってviewとmodelをつなぐ役割をするものじゃないんですかね 別に対応するviewなんて何も無いただデータとそのメソッドを持つだけのクラスをviewmodelと言えるんでしょうか
865 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 11:36:17.81 ID:GMvg4a1K.net] https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel#version-14 うんこ品質の時間です 突然1.4がリリースされやがった 9月末が予定じゃなかった?
866 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 12:07:44.06 ID:+9swg57/.net] >>854 それ、すごい労力かかる割にはWPF専用のViewModelになっちゃうじゃない。 いまUIライブラリ移行の過渡期なんだし、再利用できるViewModelとか考えないの?
867 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 12:40:08.29 ID:k/7LWfvb.net] >>855 俺の理解が間違ってるかもしれないけど、 その Circle クラス?が画面上の円のコントロールかなにかの DataContext になってるなら ViewModel であるといえるんじゃないだろか。 画面上のどこにもバインドしてないんなら違うと思うけど。 例えば ListBox の ItemsSource にバインドするコレクションの各要素の型は ViewModel と言えると思う。 ListBoxItem を 1つの View として見た時にその DataContext になるから。 ↓これとか ItemViewModel というのを定義してる。 https://blog.okazuki.jp/entry/2016/04/08/233620 ItemViewModel
868 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 13:22:03.44 ID:WwAx/vtc.net] viewmodelはmodel用のviewじゃなくてview用のmodel 各種viewmodelでcircleモデルのview用の変換やviewからの入力に対してモデルとの橋渡しをする場所としてvmcircleを作ってるんならまあ理解できる
869 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 14:00:23.53 ID:+wESSzqb.net] 何なら納得するんだろうか? 画面に複数のタブページがあるアプリがあって メインVMに複数のタブページ用のVMがリストなどで持たれている(直接のモデルじゃなくて) これでおかしいと思うのかどうか
870 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 15:36:13.08 ID:KSwuKB63.net] XAML Islandsとか名前がよくない 絶海の孤島のイメージだ
871 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 15:53:03.73 ID:A6umWt5F.net] Islandsで孤島?
872 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 16:07:40.97 ID:qE8kvwKZ.net] 複数形だから孤島ではないな
873 名前:デフォルトの名無しさん [2023/08/31(木) 16:52:36.04 ID:BoGIe8nI.net] >>857 VieModelの再利用? 再利用するのはViewの方であって、ViewがViewModelへのバイディング権がある。 それで、フレキシブルな画面構築ができる。 ロジックの再利用は、Domain層にまとめる。
874 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 17:36:52.11 ID:+9swg57/.net] >>864 ん?例えばMAUIとかWASMに移植するときはViewModelを全部作り直すってこと? 大変じゃね?っていうかそれってMVVMじゃなくね? MVVMって画面とロジックの分離であって、画面が変わるたびに作り直さなくちゃいけないなら それはViewModelではなくViewの範疇では?
875 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 18:44:34.81 ID:+wESSzqb.net] ViewModelはviewとmodelの間が互いにデコボコしてて 綺麗にくっつかない場合に間に入るつめもの もともときれいにくっつくなら不要 Viewが変わればまた形に添ったViewModelが必要になる
876 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 19:17:40.59 ID:0zAKJthF.net] クライアント側にあるView層にViewとViewModelがある サーバー側にModel層があって自分の場合はREST full APIで作られたSaaS出ある場合が殆ど 業務ロジックはModel層内に全てあるので再利用可能
877 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 19:22:25.33 ID:0zAKJthF.net] View層にはWPFを動作させるための処理しかない View層をReactで作ってもそこにあるのはReactを動作させるための処理しかない 業務ロジックは全てサーバー側にあって全く無駄にはならない
878 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 21:51:01.50 ID:lnQo2el+.net] >>762 今思いついたんだが「sugar dragonfly」はどう?
879 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 16:45:19.11 ID:ba1FgNHl.net] 機器の通信サンプルアプリをWPFで作るのは有り? サンプルを参考にする相手がWPFを使ってるかわからないから、WinFormsの方が無難かな? 一番無難なCUI版は出来たからコアの通信部分は変わらなくて、通信結果を見やすくするだけなんだけども
880 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 17:16:03.23 ID:E0s4hvcN.net] ActiveXでExcel VBA対応するのが無難だな
881 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 19:47:27.67 ID:+613Qa0i.net] >>866 それはVMじゃない。どっちかというとMVCのCに近い。
882 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 21:56:19.74 ID:42muqi3u.net] >>866 の説明はCよりVMよりだと思う VMはModelを特定のView用に変換した状態を持っておくもの MVC Vーーーーーーーー 監視 ーーーーーーー>M Vーーー入力ーー> C ーーー入力ーー>M V<ーーーーーーー 通知 ーーーーーーーーM MVVM Vーーー監視ーー> VM ーーー監視ーー>M Vーーー入力ーー> VM ーーー入力ーー>M V<ーー通知ーーー VM <ーー通知ーーーM
883 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 22:06:47.51 ID:XOi5r4E6.net] みんなめちゃくちゃだな..
884 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 22:16:55.21 ID:+613Qa0i.net] >VMはModelを特定のView用に変換した状態を持っておくもの なにその珍解釈
885 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 22:33:11.78 ID:dq5C6mfu.net] 一人だけ俺様理論がおるな
886 名前:デフォルトの名無しさん mailto:637 [2023/09/01(金) 22:55:04.64 ID:86UzGWyS.net] みんなVIEWを差し替え差し替えでMODELを流用することやってるの?
887 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 23:31:31.63 ID:hl1Bipr4.net] いや全然
888 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 00:18:16.99 ID:fOS98KnE.net] 自己満ですなーー WPFのMVVMがまさに究極の自己満 MVVMとかvue.jsとかangular、androidとかでも普通に使うし そっちは実装コストもかからん
889 名前:デフォルトの名無しさん mailto:637 [2023/09/02(土) 05:21:08.01 ID:6VujaKd3.net] android studioはwindows formのポトベタと同じ感覚なんだが?
890 名前:デフォルトの名無しさん [2023/09/02(土) 08:18:23.73 ID:Fau+Wvgs.net] >>877 モニターアプリでは良くやるよ。 化学プラントの製品毎の画面やライン管理の製品毎の32~4096接点モニターとかね。 モニターと非常停止等の共通アクション画面なら流用する。 ただし、Viewのビハンイドコードトリミングは必要。 それらを再利用というには微妙だな。 VMはペアで消費するものと考えるのが普通。 再利用というのはロジックの再利用を言うのが一般的じゃね?
891 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 09:33:36.47 ID:fwdoqn2z.net] 結局VMに何らかの描画以外のロジックを書いてる人が多いんだろうなと mvvm原理主義者じゃなければ別に好きなようにしたらいいんだが WPFは結局どのように実装すべきなのかハッキリとしたパターンが確立されなかった これが一番の問題だった 明確に役割分担してオブジェクトの生死を適切に管理してる人間がどれだけいるのか
892 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 09:49:03.02 ID:fOS98KnE.net] >>875 あってるぞ MをVに表示させる為に必要な形に変えたものだ 例えばM(Web APIのResult)をVM(Vにバインディンク可能なデータ型)に変換してVと接続する
893 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 10:06:25.37 ID:fwdoqn2z.net] 状態と言う意味が通じていないので話をしても無駄 v vm mでそれぞれ状態は持ってる 普通はmの状態のことを話すんだけど双方の話がかみ合っていない
894 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 10:12:13.25 ID:fwdoqn2z.net] 本来はMと全層から利用されるビジネスロジックが主体なんだけど vmでガッツリロジックなり制御なりのコード書いてる人が多い そういう人から見るとvmは状態を持っていると言う主張になる
895 名前:デフォルトの名無しさん [2023/09/02(土) 10:21:43.71 ID:Fau+Wvgs.net] >>882 だね。 ViewModelはインスタンスプールの場という認識が無いとそうなるね。 Bitmap加工にしても、ロジックは別の層に置くもの。 ロジックはDomain層、ドライバーはInfrastructure層でカキコしておけば再利用というスタイルの本筋が見えてくる。
896 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 10:42:05.01 ID:ePvjWEyO.net] wikipediaだとこうだな。VMはVが表示すべき状態を保持するというのが普通の理解だと思う。 ViewModel ViewModel(ビューモデル)はViewを描画するための状態の保持と、Viewから受け取った入力を適切な形に変換してModelに 伝達する役目を持つ。すなわちViewとModelの間の情報の伝達と、Viewのための状態保持のみを役割とする要素である。
897 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 10:53:39.97 ID:UWvP69T4.net] という事はバリデーションもvmじゃなくてmでやるの?
898 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 11:59:17.23 ID:+7egXD0v.net] >>887 の定義だとちょっと密に思えてしまうな https://learn.microsoft.com/ja-jp/dotnet/architecture/maui/mvvm 大まかに言うと、ビューはビュー モデルを "認識" し、 ビュー モデルはモデルを "認識" しますが、 モデルはビュー モデルを認識しておらず、 ビュー モデルはビューを認識していません。 したがって、ビュー モデルではビューをモデルから分離させ、 ビューとは独立してモデルを進化させることができます。
899 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 12:40:51.82 ID:CPf5VJuY.net] 君たち一旦モデルの事はわすれろよ めちゃくちゃすぎる
900 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 13:16:00.96 ID:CPf5VJuY.net] >>882 の言うようにハッキリとしたものがないと同意した上で言わせてもらうが >そういう人から見るとvmは状態を持っていると言う主張になる VMは状態をもつ めちゃくちゃすぎる 普通に状態を持つ
901 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 13:18:09.94 ID:fwdoqn2z.net] アプリケーションの真の実態はMなんだから忘れることじゃないな 勘違いされがちだけどMはデータ置き場でもライブラリでもないアプリケーション本体 VMは表層でしかない メッセージの仲介所 上で書かれたインスタンスプールでもない 仕事をするにあたりただどこかにあるモデルへの参照を持っているだけ ModelAとModelBを参照して計算してModelCに入れるのはVMの仕事ではない VMはMに単純なメッセージ飛ばすのが仕事
902 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 13:35:29.82 ID:CPf5VJuY.net] ロジックを単にロジックと表現したりするとこみると ロジックをビジネスロジックとプレゼンテーションロジックに分けて 考えてないよね ここで>>882 のじゃあ明確なその区別のルールは?って問題が出てくるが