Windows Presentation Frameworkについて語るスレ。
前スレ
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
WPF(.NET, WinUI) GUIプログラミング Part26
■ このスレッドは過去ログ倉庫に格納されています
2021/06/20(日) 17:04:18.66ID:7UVkl7BZ
413デフォルトの名無しさん
2021/07/08(木) 13:54:52.32ID:icewyiWh これでいいじゃん。using追加してAnnotation付けるだけだよ
https://www.reactiveui.net/docs/handbook/view-models/boilerplate-code
[Reactive]
public string Name { get; set; }
https://www.reactiveui.net/docs/handbook/view-models/boilerplate-code
[Reactive]
public string Name { get; set; }
414デフォルトの名無しさん
2021/07/08(木) 13:55:12.53ID:Y0QirsOb まあ他の言語のFWはばかでも書けるけど、
ことWPF含めMS主導のは一部の細かい主張に答えるためか、
やることが回りくどいんだよな
FW使ってるのに書くことが多いと言うか
ことWPF含めMS主導のは一部の細かい主張に答えるためか、
やることが回りくどいんだよな
FW使ってるのに書くことが多いと言うか
415デフォルトの名無しさん
2021/07/08(木) 14:00:41.26ID:h5za3xa1416デフォルトの名無しさん
2021/07/08(木) 14:05:52.94ID:/EVL8M+q >>415
うわ頭悪そう
うわ頭悪そう
417デフォルトの名無しさん
2021/07/08(木) 14:35:39.28ID:zQs4IMMf418デフォルトの名無しさん
2021/07/08(木) 14:48:13.57ID:h5za3xa1 >>417
それ全然違うから...
それ全然違うから...
419デフォルトの名無しさん
2021/07/08(木) 14:51:52.72ID:zQs4IMMf420デフォルトの名無しさん
2021/07/08(木) 14:57:32.77ID:h5za3xa1421デフォルトの名無しさん
2021/07/08(木) 16:00:11.32ID:zQs4IMMf422デフォルトの名無しさん
2021/07/08(木) 18:03:12.85ID:hcvY/pCa423デフォルトの名無しさん
2021/07/08(木) 18:32:35.94ID:0NJb5JqL h5za3xa1は世間知らずのWPF至上主義者なんだ
許してやれとは言わないが冷たい目で見ればいいよ
許してやれとは言わないが冷たい目で見ればいいよ
424デフォルトの名無しさん
2021/07/08(木) 18:33:09.06ID:hcvY/pCa425デフォルトの名無しさん
2021/07/08(木) 18:35:59.60ID:0NJb5JqL ここからまたプロパティで書くべきかどうかみたいな話になるのだろうか
recordの仕様と実装が中途半端だから解決法にならない
recordの仕様と実装が中途半端だから解決法にならない
426デフォルトの名無しさん
2021/07/08(木) 18:45:37.60ID:hcvY/pCa >>404
実はWPFでもstaticだけはObservableの実装無しでいけたりします。
なのでModelの直バインドも可能です。
更新はコントロールを強制再描画すれば良い。
case: WPF(static only)
<TextBox Text={x:static viewModel.value1}/>
実はWPFでもstaticだけはObservableの実装無しでいけたりします。
なのでModelの直バインドも可能です。
更新はコントロールを強制再描画すれば良い。
case: WPF(static only)
<TextBox Text={x:static viewModel.value1}/>
427デフォルトの名無しさん
2021/07/08(木) 19:30:36.43ID:3cBmXvB1 なんでView-ViewModelのバインディングの事例を並べてるの?
Modelの話じゃなかったっけ
Modelの話じゃなかったっけ
428デフォルトの名無しさん
2021/07/08(木) 19:48:49.81ID:0NJb5JqL person.Nameみたいなのにバインディングされていて
Name変更時に通知する仕組みはモデルの責任じゃないけどそれが必要になる
他のフレームワークのように別の仕組みが通知するのが普通
WPFは普通じゃないし劣っている
Name変更時に通知する仕組みはモデルの責任じゃないけどそれが必要になる
他のフレームワークのように別の仕組みが通知するのが普通
WPFは普通じゃないし劣っている
429デフォルトの名無しさん
2021/07/08(木) 20:03:20.69ID:h5za3xa1430デフォルトの名無しさん
2021/07/08(木) 20:04:13.12ID:h5za3xa1 >>426宛ね
431デフォルトの名無しさん
2021/07/08(木) 20:26:48.87ID:/EVL8M+q 引っ込みつかなくなって可哀想
432デフォルトの名無しさん
2021/07/08(木) 20:35:30.05ID:h5za3xa1433デフォルトの名無しさん
2021/07/08(木) 20:42:51.18ID:0NJb5JqL person.Name見たいのはいつ変更したかなどはわかりやすいが
普通のクラスなどはいつどこで更新したのかが非常に追いにくい
目視でバグが確認できたとしてそれがどこで変更されてるのかがわかりにくい
バグがつぶしにくい
普通のクラスなどはいつどこで更新したのかが非常に追いにくい
目視でバグが確認できたとしてそれがどこで変更されてるのかがわかりにくい
バグがつぶしにくい
434デフォルトの名無しさん
2021/07/08(木) 20:51:56.44ID:h5za3xa1 とりあえず、
読解力ないバカが多すぎってのだけはわかった
読解力ないバカが多すぎってのだけはわかった
435デフォルトの名無しさん
2021/07/08(木) 21:02:34.08ID:/EVL8M+q やったじゃん
俺以外みんなバカ宣言して精神的勝利だ
俺以外みんなバカ宣言して精神的勝利だ
436デフォルトの名無しさん
2021/07/08(木) 21:07:38.15ID:FRcNf1lv まぁ「俺の言いたいことを理解してくれない奴」は多いよな、いつでも。
437デフォルトの名無しさん
2021/07/08(木) 21:17:18.89ID:UhDpZcYs 真の天才は死んでから評価されるのさ
438デフォルトの名無しさん
2021/07/08(木) 22:41:40.59ID:j2+tCvGN Mに変更通知機能無いって大変そうだな
439デフォルトの名無しさん
2021/07/08(木) 23:02:26.20ID:hcvY/pCa >>変更時に通知する仕組み
MVVMだから変更を監視する巧妙な仕組みがあって
(フレームワークによって思想が違う)
その仕様にのっとって適時勝手にバインドが動作する
のでコードは増えない
MVVMだから変更を監視する巧妙な仕組みがあって
(フレームワークによって思想が違う)
その仕様にのっとって適時勝手にバインドが動作する
のでコードは増えない
440デフォルトの名無しさん
2021/07/08(木) 23:53:25.76ID:SSutR7CK MをPOCOで作りたがる人いるよね。通知を実装するのも嫌がる。
441デフォルトの名無しさん
2021/07/09(金) 00:11:25.67ID:hwC1YyL2 個人的には
(client: view, view-model)~network~(service: model)
としてる
入力バリデーションもmodelのみだ
へんかな?
(client: view, view-model)~network~(service: model)
としてる
入力バリデーションもmodelのみだ
へんかな?
442デフォルトの名無しさん
2021/07/09(金) 00:39:31.73ID:fR2pG3Vk443デフォルトの名無しさん
2021/07/09(金) 07:02:13.37ID:/l05Ymia >>442
いや、WPFのMもPOCOで作るのが常識。
いや、WPFのMもPOCOで作るのが常識。
444デフォルトの名無しさん
2021/07/09(金) 16:02:03.33ID:pQ/i3/CL 朕はPOCOなり
445デフォルトの名無しさん
2021/07/10(土) 01:49:25.85ID:Is4zF1A7 ふーん
POCOでModel変更感知するのって面倒じゃない?
POCOでModel変更感知するのって面倒じゃない?
446デフォルトの名無しさん
2021/07/10(土) 01:58:32.76ID:ZqXyUc92 POCOってなーに?
447デフォルトの名無しさん
2021/07/10(土) 06:16:51.11ID:321/A5HW Modelで変更通知なんかしない。
VMとMの区分けすらできないならMVVMで作らなきゃいいのに。
VMとMの区分けすらできないならMVVMで作らなきゃいいのに。
448デフォルトの名無しさん
2021/07/10(土) 09:14:28.45ID:nAGZi/ZP 田舎者がなんか言ってるぞ
449デフォルトの名無しさん
2021/07/10(土) 09:27:48.37ID:Rzopl14C >>447
Modelの変更はどうやってViewModelやViewに反映されるの?
Modelの変更はどうやってViewModelやViewに反映されるの?
450デフォルトの名無しさん
2021/07/10(土) 09:43:48.41ID:16vz6VAu PODのようなものと混同してんのかな。
POxOから外部に何らかの通知をするのは別に普通だろ。依存の方向とか強くなりすぎるなとか一般的な注意をするだけ。
POxOから外部に何らかの通知をするのは別に普通だろ。依存の方向とか強くなりすぎるなとか一般的な注意をするだけ。
451デフォルトの名無しさん
2021/07/10(土) 10:05:00.92ID:9ZKehVN0 >>449
Reduxならプロパティ変更イベントは必要ないよ
Reduxならプロパティ変更イベントは必要ないよ
452デフォルトの名無しさん
2021/07/10(土) 10:17:17.62ID:Rzopl14C453デフォルトの名無しさん
2021/07/10(土) 10:21:20.73ID:Cpxz5fTv M自身が能動的に処理を行うことは無い。
Mに対してはVMから変更かける。通信やDB操作は外部プログラム(dll等)の役目だし、
ちょっと規模が大きいアプリなら外部通信などの処理は別プロジェクト(dll)にまとめられてるはずだろ?
外部プログラムが何らかの処理してMを変更し、外部プログラムの処理結果はVMでイベントハンドリングして
UIを更新する
Mに対してはVMから変更かける。通信やDB操作は外部プログラム(dll等)の役目だし、
ちょっと規模が大きいアプリなら外部通信などの処理は別プロジェクト(dll)にまとめられてるはずだろ?
外部プログラムが何らかの処理してMを変更し、外部プログラムの処理結果はVMでイベントハンドリングして
UIを更新する
454デフォルトの名無しさん
2021/07/10(土) 10:29:02.22ID:Cpxz5fTv VとVMで1つのプロジェクト(UI担当)
Mと通信処理などをまとめて1つのプロジェクト(System.Windowsを参照しなければ汎用ライブラリ)として
.net core等でも使用可能)
もちろんVMからSQL文を発行することもある
日曜大工レベルのアプリならVMの中で通信処理などビジネスロジックを全て含める
Mと通信処理などをまとめて1つのプロジェクト(System.Windowsを参照しなければ汎用ライブラリ)として
.net core等でも使用可能)
もちろんVMからSQL文を発行することもある
日曜大工レベルのアプリならVMの中で通信処理などビジネスロジックを全て含める
455デフォルトの名無しさん
2021/07/10(土) 10:37:32.94ID:16vz6VAu >>452
更新されたMが自発的にイベントを発火するか、VからMを更新するアクションが発生する毎に更新後のMの値を取りに行くかの違い。
flux/reduxのような一方向データフローでモデル更新がシリアライズされているから実用になること。
更新されたMが自発的にイベントを発火するか、VからMを更新するアクションが発生する毎に更新後のMの値を取りに行くかの違い。
flux/reduxのような一方向データフローでモデル更新がシリアライズされているから実用になること。
456デフォルトの名無しさん
2021/07/10(土) 10:54:10.61ID:Rzopl14C V以外からMが更新される場合は、Mを更新した処理とVMが強く結合されるってことね
457デフォルトの名無しさん
2021/07/10(土) 10:56:13.18ID:KTvmhX8f Mの発火をVMが受け取りまた発火、Vが描画とか手間かかるしチームで案件やってると教育コストもかかる。
技術に疎いマネージャーだとクリックイベントに全部書けやとか言ってくるんだよね。
技術に疎いマネージャーだとクリックイベントに全部書けやとか言ってくるんだよね。
458デフォルトの名無しさん
2021/07/10(土) 11:07:48.66ID:16vz6VAu >>456
flux/reduxについて言えばアクション自体への結合は不要。
基本的にMは全部単一のストアにまとめられていて、どこかが更新されるアクションが発生したら全員でMの更新を見に行くような感じ。
flux/reduxについて言えばアクション自体への結合は不要。
基本的にMは全部単一のストアにまとめられていて、どこかが更新されるアクションが発生したら全員でMの更新を見に行くような感じ。
459デフォルトの名無しさん
2021/07/10(土) 11:09:30.03ID:owBtnLy3 >>456
モデルにぶら下がってるVMはフレームワークが把握しているから、フレームワークにMの更新メッセージを投げるだけだよ
モデルにぶら下がってるVMはフレームワークが把握しているから、フレームワークにMの更新メッセージを投げるだけだよ
460デフォルトの名無しさん
2021/07/10(土) 11:13:06.20ID:owBtnLy3 なおMのどのプロパティが更新されるかの特定も不要で、VMはあくまでMの現在の状態に対する関数として更新後のV全体を出力するだけでいい
あとはフレームワークがよしなに差分を取って変更を反映してくれる
あとはフレームワークがよしなに差分を取って変更を反映してくれる
461デフォルトの名無しさん
2021/07/10(土) 11:14:26.03ID:Is4zF1A7 Mへの更新は全部フレームワーク経由で実施するってことか
フレームワーク君頑張るなw
フレームワーク君頑張るなw
462デフォルトの名無しさん
2021/07/10(土) 11:17:08.14ID:2DdNTqcD463デフォルトの名無しさん
2021/07/10(土) 11:26:26.12ID:uwFcR1va ちなみに>>453,454はただのMVVMだよね??
464デフォルトの名無しさん
2021/07/10(土) 11:28:40.75ID:Rzopl14C V以外でのMの更新自体はM寄りの処理だよね
Mの各プロパティから個別に更新通知が行くか、代表して更新通知が行くかの違いであって
Modelからの変更通知が無いってのはちょっと違うな
Mの各プロパティから個別に更新通知が行くか、代表して更新通知が行くかの違いであって
Modelからの変更通知が無いってのはちょっと違うな
465デフォルトの名無しさん
2021/07/10(土) 11:35:14.88ID:owBtnLy3466デフォルトの名無しさん
2021/07/10(土) 11:43:48.27ID:Is4zF1A7 >>462
フレームワークはMが更新されたことをどうやって知るの?
フレームワークはMが更新されたことをどうやって知るの?
467デフォルトの名無しさん
2021/07/10(土) 12:19:02.06ID:uwFcR1va >>466
ああ、わかったただのMVVMの変種か
今までだって、MVVMで作ってた時はModelでimmutableなのをあったけど、
イメージとしてModelを全部immutableにして、ViewModelのほうに全部押し込めって話か
極端な話Modelを全部immutableにして、後のつじつまあわせは全部ViewModel(Store)で全部やれってことww
負荷が全部ViewModel(Store)にいくってことじゃね??
ああ、わかったただのMVVMの変種か
今までだって、MVVMで作ってた時はModelでimmutableなのをあったけど、
イメージとしてModelを全部immutableにして、ViewModelのほうに全部押し込めって話か
極端な話Modelを全部immutableにして、後のつじつまあわせは全部ViewModel(Store)で全部やれってことww
負荷が全部ViewModel(Store)にいくってことじゃね??
468デフォルトの名無しさん
2021/07/10(土) 12:32:05.86ID:uwFcR1va 今までだって例えばMVVMでTwitterアプリを作るとき
まず、汎用的なTwitterAPIを叩いてPOCOを返すだけのライブラリを作って(A)
(A)を内部で使ったModelを作る
必要ならここでINPCの変更通知を実装(B)
で、後はViewModelをつくるだけど、
(B)をすっとばして、ViewModelで(A)を使ってここですべてやる
こんな感じ??
まず、汎用的なTwitterAPIを叩いてPOCOを返すだけのライブラリを作って(A)
(A)を内部で使ったModelを作る
必要ならここでINPCの変更通知を実装(B)
で、後はViewModelをつくるだけど、
(B)をすっとばして、ViewModelで(A)を使ってここですべてやる
こんな感じ??
469デフォルトの名無しさん
2021/07/10(土) 12:35:43.17ID:uwFcR1va だからそもそも今までだってどこのModelか知らんが(A)の部分は汚染されてないけどな..
二つ似たようなの作ってるが..
二つ似たようなの作ってるが..
470デフォルトの名無しさん
2021/07/10(土) 12:52:18.73ID:uwFcR1va もちろん、Modelをmutableにしてもいいけど、ViewModel(Store)内でModelを直接更新するからModelの変更通知機能は全く必要なくて、更新後ViewModel(Store)がViewに状態が変わりましたよって通知できればいい
やっと理解できました
ありがとう
やっと理解できました
ありがとう
471デフォルトの名無しさん
2021/07/10(土) 15:15:27.78ID:xJQjD86t mvcやらmvvmやらに全てあてはめようとして考えて、
訳わかんない考えに染ってるのばっかだな
訳わかんない考えに染ってるのばっかだな
472デフォルトの名無しさん
2021/07/10(土) 15:53:06.08ID:fmB/UGP2 まあデザインパターン病と同じ。
473デフォルトの名無しさん
2021/07/10(土) 16:12:10.43ID:xJQjD86t >>470
これが何も知らない新人君でもやる普通の実装なんだがな
これが何も知らない新人君でもやる普通の実装なんだがな
474デフォルトの名無しさん
2021/07/10(土) 18:17:59.49ID:Is4zF1A7475デフォルトの名無しさん
2021/07/10(土) 18:34:12.08ID:X6uqNK3l というかこれって答えあるのか?
476デフォルトの名無しさん
2021/07/10(土) 18:37:01.39ID:yemPkoko オブザーバーでも
イベントでも
好きなパターンで実装すればよろし
イベントでも
好きなパターンで実装すればよろし
477デフォルトの名無しさん
2021/07/10(土) 18:52:36.88ID:T1N+jIqA478デフォルトの名無しさん
2021/07/10(土) 18:54:15.71ID:T1N+jIqA VMからMにはメッセージのみ送る
馬鹿はVMからMをいじる
馬鹿はVMからMをいじる
479デフォルトの名無しさん
2021/07/10(土) 18:57:20.02ID:T1N+jIqA WPFで本気でMVVMやりたいならMに通知もみんな書くんだよ
これがモデル汚染
最近はビジネスロジック層を作ってお茶を濁してるけどそれも結局通知はどこなのか普通に迷うところ
これがモデル汚染
最近はビジネスロジック層を作ってお茶を濁してるけどそれも結局通知はどこなのか普通に迷うところ
480デフォルトの名無しさん
2021/07/10(土) 19:16:41.13ID:uwFcR1va >>479
>WPFで本気でMVVMやりたいならMに通知もみんな書くんだよ
MVVMの話でいいならそれはrigaya?が勝手に言ってるだけだぞ
別に正解の定義なんてないだろうしどっちが正解とは言
言わんが
Modelのメソッドは結果を返さず、メソッドの呼び出しの結果、自身の状態(プロパティ)を変更するだけってやつだろ
>WPFで本気でMVVMやりたいならMに通知もみんな書くんだよ
MVVMの話でいいならそれはrigaya?が勝手に言ってるだけだぞ
別に正解の定義なんてないだろうしどっちが正解とは言
言わんが
Modelのメソッドは結果を返さず、メソッドの呼び出しの結果、自身の状態(プロパティ)を変更するだけってやつだろ
481デフォルトの名無しさん
2021/07/10(土) 19:28:32.13ID:xJQjD86t フレームワークの方法論は
その開発者が一方的に押し付けてる理屈なのに
気づけない馬鹿
その開発者が一方的に押し付けてる理屈なのに
気づけない馬鹿
482デフォルトの名無しさん
2021/07/10(土) 19:35:48.59ID:T1N+jIqA 違うよ
知性の問題だ
それが理解できない馬鹿がバグを量産する
知性の問題だ
それが理解できない馬鹿がバグを量産する
483デフォルトの名無しさん
2021/07/10(土) 19:36:54.45ID:T1N+jIqA 馬鹿が自分が馬鹿でないと思って偉そうに何年もクソコードを書いてMVVM最高と言ってるだけだ
484デフォルトの名無しさん
2021/07/10(土) 19:38:06.79ID:uwFcR1va うん、rigayaは開発者じゃないしね
485デフォルトの名無しさん
2021/07/10(土) 19:40:04.65ID:T1N+jIqA486デフォルトの名無しさん
2021/07/10(土) 19:43:32.20ID:xJQjD86t modelとviewModelの責務分けは
馬鹿には出来んよなーー
馬鹿には出来んよなーー
487デフォルトの名無しさん
2021/07/10(土) 19:47:15.76ID:uwFcR1va 外人でrigayaと同じ主張してる人見たことない
Modelで通知をするのが普通とか言ってるのはお前が勝手に思ってるだけ
>>481でMVVMを本当に作った人が特定できるならまずそれを特定してくれ。で、Modelで変更通知を実装するのが普通ってどこに書いてあるか教えてくれ
Modelで通知をするのが普通とか言ってるのはお前が勝手に思ってるだけ
>>481でMVVMを本当に作った人が特定できるならまずそれを特定してくれ。で、Modelで変更通知を実装するのが普通ってどこに書いてあるか教えてくれ
488デフォルトの名無しさん
2021/07/10(土) 19:52:15.95ID:uwFcR1va もちろん、ViewModelはビューの状態を保持し、Modelに対してはModelのメソッドを呼んで
ビューに関するロジックを書くだけだぞ
Modelに変更通知機能あるかないかは全く関係ない話
勝手にModelに変更通知があるのが普通と思ってのはお前
ビューに関するロジックを書くだけだぞ
Modelに変更通知機能あるかないかは全く関係ない話
勝手にModelに変更通知があるのが普通と思ってのはお前
489デフォルトの名無しさん
2021/07/10(土) 19:52:27.91ID:xJQjD86t フレームワークつかうと
やっぱ宗教じみた変なのが誕生するなーー
まずはプリミティブなライブラリのみ使用して
デザインパターンとか理解してみる事をおすすめする
やっぱ宗教じみた変なのが誕生するなーー
まずはプリミティブなライブラリのみ使用して
デザインパターンとか理解してみる事をおすすめする
490デフォルトの名無しさん
2021/07/10(土) 20:01:26.66ID:16vz6VAu >>478
「メッセージのみ送る」と「いじる」の違いはこいつの頭の中にしか無いんだろうな。
「メッセージのみ送る」と「いじる」の違いはこいつの頭の中にしか無いんだろうな。
491デフォルトの名無しさん
2021/07/10(土) 20:06:44.05ID:uwFcR1va MVVMでViewModelの責務は>>488なだけ
Modelが変更通知を実装するしないかは関係ない
MVVM黎明期、rigaなんとだけが日本で声上げたからあいつの馬鹿信者が増えたんだろう
しかも日本だけ笑い
Modelが変更通知を実装するしないかは関係ない
MVVM黎明期、rigaなんとだけが日本で声上げたからあいつの馬鹿信者が増えたんだろう
しかも日本だけ笑い
492デフォルトの名無しさん
2021/07/10(土) 20:17:00.58ID:MxfUHgdm だから>>362で最初からバインディングはVVMまででいいって言ってるじゃん
何をそんな喧嘩腰で議論する必要があるのか
何をそんな喧嘩腰で議論する必要があるのか
493デフォルトの名無しさん
2021/07/10(土) 20:23:04.54ID:xJQjD86t “model” と “view、viewModel” の開発者は
分けた方がいいかもな
modelだけで業務が回せるようになってればいいだろ
実際modelはpythonで実装するの増えて
担当者も異なる事が多いわ
分けた方がいいかもな
modelだけで業務が回せるようになってればいいだろ
実際modelはpythonで実装するの増えて
担当者も異なる事が多いわ
494デフォルトの名無しさん
2021/07/10(土) 20:43:24.78ID:Is4zF1A7 >>492
バインディングの話じゃないって分かってない?
バインディングの話じゃないって分かってない?
495デフォルトの名無しさん
2021/07/10(土) 20:55:14.46ID:MxfUHgdm >>494
え?変更通知なんだから要はバインディングの話でしょ?
え?変更通知なんだから要はバインディングの話でしょ?
496デフォルトの名無しさん
2021/07/10(土) 21:06:48.12ID:o3oxPhaH 今日だけで50レスも進んでるのか
ヒマすぎだな
ヒマすぎだな
497デフォルトの名無しさん
2021/07/10(土) 21:45:12.95ID:uwFcR1va 例えば、ModelがImuutableでINPCを実装しないとするよ。で、Modelの更新はModelのメソッドを呼んで、
メソッドの戻り値として新しいインスタンスを返すとする
class Model { // ImmutableなINPCを実装しない
public Task<Model> UpdateAsync() <- 新しいインスタンスを返す
}
で、ViewModelから更新かけるとき、更新後、最新の情報に更新する必要あるなら、それは
あくまで表示の都合だから、ViewModelにそのロジックを書いて問題ないだろ??
class ViewModel {
public void Hoge() {
var result = await model.updateAsync()
// resultの結果を元にViewModel更新
}
}
ModelがINPCを実装するかなんて本来はMVVMには関係なく俺にはこれも立派なMVVMにしか見えねぇわww
メソッドの戻り値として新しいインスタンスを返すとする
class Model { // ImmutableなINPCを実装しない
public Task<Model> UpdateAsync() <- 新しいインスタンスを返す
}
で、ViewModelから更新かけるとき、更新後、最新の情報に更新する必要あるなら、それは
あくまで表示の都合だから、ViewModelにそのロジックを書いて問題ないだろ??
class ViewModel {
public void Hoge() {
var result = await model.updateAsync()
// resultの結果を元にViewModel更新
}
}
ModelがINPCを実装するかなんて本来はMVVMには関係なく俺にはこれも立派なMVVMにしか見えねぇわww
498デフォルトの名無しさん
2021/07/10(土) 21:59:07.18ID:uwFcR1va もちろん、MVVMの厳格な定義なんて知らないし、極論すれば言葉の問題になるから
どっちが正解なんて言うつもりはないが、
rigaなんとか的に
「ModelはINPCを実装して、Modelのメソッドは戻り値は返さないで、
メソッドの呼び出しの結果自身の状態を変更し、INPC経由でViewModelに通知する」
で
おまえらこれだけがMVVMだと思ってるだけじゃんw
どっちが正解なんて言うつもりはないが、
rigaなんとか的に
「ModelはINPCを実装して、Modelのメソッドは戻り値は返さないで、
メソッドの呼び出しの結果自身の状態を変更し、INPC経由でViewModelに通知する」
で
おまえらこれだけがMVVMだと思ってるだけじゃんw
499デフォルトの名無しさん
2021/07/10(土) 22:07:37.44ID:321/A5HW >>497
うん、これが王道の作り方
うん、これが王道の作り方
500デフォルトの名無しさん
2021/07/10(土) 22:14:04.55ID:uwFcR1va501デフォルトの名無しさん
2021/07/10(土) 22:54:51.35ID:x1ppTpnc ID:uwFcR1va
この人のサーバーサイドには
何が実装されてるのだろうか...
この人のサーバーサイドには
何が実装されてるのだろうか...
502デフォルトの名無しさん
2021/07/10(土) 22:55:10.24ID:16vz6VAu503デフォルトの名無しさん
2021/07/10(土) 23:07:03.07ID:uwFcR1va504デフォルトの名無しさん
2021/07/10(土) 23:59:12.78ID:Wb8JMrdb awaitはasyncが必要だろう。
505デフォルトの名無しさん
2021/07/11(日) 00:15:04.56ID:BeeJLMuH 読みづらいからよ
続けるなら名前欄にスタンスを書いてくれないか
続けるなら名前欄にスタンスを書いてくれないか
506デフォルトの名無しさん
2021/07/11(日) 01:46:58.32ID:2ghBsept やっぱりWPFはめんどくさいなw
507デフォルトの名無しさん
2021/07/11(日) 02:11:56.24ID:vIt/TVMn508デフォルトの名無しさん
2021/07/11(日) 02:13:20.15ID:vIt/TVMn509デフォルトの名無しさん
2021/07/11(日) 02:52:00.72ID:OgOa7vqd >>508
ほんまかいな
ほんまかいな
510デフォルトの名無しさん
2021/07/11(日) 02:59:38.37ID:bArpP16/ 楽⇔面倒
簡単⇔難しい
単純⇔複雑
区別できない奴多すぎでは
簡単⇔難しい
単純⇔複雑
区別できない奴多すぎでは
511デフォルトの名無しさん
2021/07/11(日) 08:40:13.02ID:x50DSKku >>501
予想
ID:uwFcR1va 氏の構成
(client)
View
ViewModel
Model
Database Client Library
↑↓
(server)
Database Server
予想
ID:uwFcR1va 氏の構成
(client)
View
ViewModel
Model
Database Client Library
↑↓
(server)
Database Server
512デフォルトの名無しさん
2021/07/11(日) 12:56:04.27ID:qjFfZwWG 一人ホームラン級の馬鹿がずっとレスしてるだけだな
MVVMでMから変更通知出すのは当たり前
VMでモデル変更して通知と言うけどモデル内で変更が生じた場合VMが変更通知出してるのかw?
VMは画面ごとに作るけどMに対応した処理はどこに書かれるんだ
まさか画面ごとか?
MVVMでMから変更通知出すのは当たり前
VMでモデル変更して通知と言うけどモデル内で変更が生じた場合VMが変更通知出してるのかw?
VMは画面ごとに作るけどMに対応した処理はどこに書かれるんだ
まさか画面ごとか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 自民・麻生太郎 副総裁 石破政権の1年は「どよーん」 高市政権の発足で「何となく明るくなった」「世の中のことが決まり動いている」 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★3
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
- 【安倍晋三】クマ駆除で誤射した猟友会隊員に町が1663万円請求【山形】 [452056903]
- 雑談した~い!
- 【悲報】高市早苗、被災民に対し「自分の命くらいは自分で守ってくださいね」と切り捨てし大炎上 [339712612]
- 史上最も「タイトル回収までの流れがアツい作品」www たれそうぞうした? [916950698]
