[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 09/07 23:20 / Filesize : 232 KB / Number-of Response : 1007
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

WPF(.NET, WinUI) GUIプログラミング Part31



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のじゃあ明確なその区別のルールは?って問題が出てくるが






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<232KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef