WPF(.NET, WinUI) GUIプログラミング Part33 (815レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
158(1): (ワッチョイ df24-mIju) 2024/10/09(水)22:40 ID:EgWGnFmO0(1) AAS
「ViewModelはViewのための橋渡しをするだけで、他のロジックはModelが持つ」と理解したんだけど、例えば以下のような感じ?
数値カウンターアプリを作る場合にCounterState みたいなモデルを用意して、「現在値」というプロパティと、インクリメント/デクリメントするためのメソッドを実装する
ViewModelはそれを画面の表示やボタン動作に紐付けるために、「現在の値」というプロパティと、ボタン押下時のコマンド (内部的にモデルのインクリメント/デクリメントメソッドを呼ぶ) を定義する
……といった具合の実装をMとVMとで行うと理解したんどけど、合ってる?
役割は違うけど、VMとMとで同じプロパティを書く冗長さがある感がする
INotifyPropertyChangedみたいなWPF特有の知識をModelに持たせない、という考えは納得できる
162: (ワッチョイ e7a9-jyON) 2024/10/10(木)11:08 ID:Ulhr2nl60(1) AAS
>>158
それで正しい
面倒ならCounterStateを完全にイミュータブルにして、そのインスタンスを直接プロパティで公開してしまえばいい
それならCounterStateがINotifyPropertyChangedを実装する必要はなくなる
その方がReactなんかのモダンWebアーキテクチャに近い今時の構造になるが、WPFの場合は更新時にモデル全体を差し替えるようなことをすると更新範囲が広くなっちゃうからパフォーマンスは犠牲になる
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.033s