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/
探検
WPF(.NET, WinUI) GUIプログラミング Part31
レス数が950を超えています。1000を超えると書き込みができなくなります。
2023/01/22(日) 05:53:16.97ID:oY263ilm
885デフォルトの名無しさん
2023/09/02(土) 10:12:13.25ID:fwdoqn2z 本来はMと全層から利用されるビジネスロジックが主体なんだけど
vmでガッツリロジックなり制御なりのコード書いてる人が多い
そういう人から見るとvmは状態を持っていると言う主張になる
vmでガッツリロジックなり制御なりのコード書いてる人が多い
そういう人から見るとvmは状態を持っていると言う主張になる
886デフォルトの名無しさん
2023/09/02(土) 10:21:43.71ID:Fau+Wvgs >>882
だね。
ViewModelはインスタンスプールの場という認識が無いとそうなるね。
Bitmap加工にしても、ロジックは別の層に置くもの。
ロジックはDomain層、ドライバーはInfrastructure層でカキコしておけば再利用というスタイルの本筋が見えてくる。
だね。
ViewModelはインスタンスプールの場という認識が無いとそうなるね。
Bitmap加工にしても、ロジックは別の層に置くもの。
ロジックはDomain層、ドライバーはInfrastructure層でカキコしておけば再利用というスタイルの本筋が見えてくる。
887デフォルトの名無しさん
2023/09/02(土) 10:42:05.01ID:ePvjWEyO wikipediaだとこうだな。VMはVが表示すべき状態を保持するというのが普通の理解だと思う。
ViewModel
ViewModel(ビューモデル)はViewを描画するための状態の保持と、Viewから受け取った入力を適切な形に変換してModelに
伝達する役目を持つ。すなわちViewとModelの間の情報の伝達と、Viewのための状態保持のみを役割とする要素である。
ViewModel
ViewModel(ビューモデル)はViewを描画するための状態の保持と、Viewから受け取った入力を適切な形に変換してModelに
伝達する役目を持つ。すなわちViewとModelの間の情報の伝達と、Viewのための状態保持のみを役割とする要素である。
888デフォルトの名無しさん
2023/09/02(土) 10:53:39.97ID:UWvP69T4 という事はバリデーションもvmじゃなくてmでやるの?
889デフォルトの名無しさん
2023/09/02(土) 11:59:17.23ID:+7egXD0v >>887 の定義だとちょっと密に思えてしまうな
https://learn.microsoft.com/ja-jp/dotnet/architecture/maui/mvvm
大まかに言うと、ビューはビュー モデルを "認識" し、
ビュー モデルはモデルを "認識" しますが、
モデルはビュー モデルを認識しておらず、
ビュー モデルはビューを認識していません。
したがって、ビュー モデルではビューをモデルから分離させ、
ビューとは独立してモデルを進化させることができます。
https://learn.microsoft.com/ja-jp/dotnet/architecture/maui/mvvm
大まかに言うと、ビューはビュー モデルを "認識" し、
ビュー モデルはモデルを "認識" しますが、
モデルはビュー モデルを認識しておらず、
ビュー モデルはビューを認識していません。
したがって、ビュー モデルではビューをモデルから分離させ、
ビューとは独立してモデルを進化させることができます。
890デフォルトの名無しさん
2023/09/02(土) 12:40:51.82ID:CPf5VJuY 君たち一旦モデルの事はわすれろよ
めちゃくちゃすぎる
めちゃくちゃすぎる
891デフォルトの名無しさん
2023/09/02(土) 13:16:00.96ID:CPf5VJuY892デフォルトの名無しさん
2023/09/02(土) 13:18:09.94ID:fwdoqn2z アプリケーションの真の実態はMなんだから忘れることじゃないな
勘違いされがちだけどMはデータ置き場でもライブラリでもないアプリケーション本体
VMは表層でしかない
メッセージの仲介所
上で書かれたインスタンスプールでもない
仕事をするにあたりただどこかにあるモデルへの参照を持っているだけ
ModelAとModelBを参照して計算してModelCに入れるのはVMの仕事ではない
VMはMに単純なメッセージ飛ばすのが仕事
勘違いされがちだけどMはデータ置き場でもライブラリでもないアプリケーション本体
VMは表層でしかない
メッセージの仲介所
上で書かれたインスタンスプールでもない
仕事をするにあたりただどこかにあるモデルへの参照を持っているだけ
ModelAとModelBを参照して計算してModelCに入れるのはVMの仕事ではない
VMはMに単純なメッセージ飛ばすのが仕事
893デフォルトの名無しさん
2023/09/02(土) 13:35:29.82ID:CPf5VJuY ロジックを単にロジックと表現したりするとこみると
ロジックをビジネスロジックとプレゼンテーションロジックに分けて
考えてないよね
ここで>>882のじゃあ明確なその区別のルールは?って問題が出てくるが
ロジックをビジネスロジックとプレゼンテーションロジックに分けて
考えてないよね
ここで>>882のじゃあ明確なその区別のルールは?って問題が出てくるが
894デフォルトの名無しさん
2023/09/02(土) 13:44:31.42ID:fwdoqn2z895デフォルトの名無しさん
2023/09/02(土) 13:46:57.02ID:fwdoqn2z あ、vmが状態を持つのはそのように書いたからであってあまり意味はない
適切なのかどうかは知らない
適切なのかどうかは知らない
896デフォルトの名無しさん
2023/09/02(土) 14:04:49.20ID:CPf5VJuY でも>>892の見ると、君完全にFatModelの某riga◯◯氏の主張だよね
897デフォルトの名無しさん
2023/09/02(土) 14:09:38.75ID:fwdoqn2z898デフォルトの名無しさん
2023/09/02(土) 14:19:20.78ID:CPf5VJuY >VMは可能な限り薄くすべきだよ
いやいや、ViewModelは作る画面をモデル化したものだから
それは作る画面次第だから
VM薄くするために要件にまで介入する気なの?
(もちろん、VMに限らずスパッゲッティ排除したりすることはいいことだが)
いやいや、ViewModelは作る画面をモデル化したものだから
それは作る画面次第だから
VM薄くするために要件にまで介入する気なの?
(もちろん、VMに限らずスパッゲッティ排除したりすることはいいことだが)
899デフォルトの名無しさん
2023/09/02(土) 14:32:46.57ID:Opj29vAW >>888
サーバー側でも結局必要になる処理なんで
バリデーション機能を提供するWebAPI定義してそっちでやってる
パフォーマンスもローカルでやるのと変わらん
自分設計の案件は
小計行の合計値など画面に表示されるものほぼ全てサーバー側での計算値だ
サーバー側でも結局必要になる処理なんで
バリデーション機能を提供するWebAPI定義してそっちでやってる
パフォーマンスもローカルでやるのと変わらん
自分設計の案件は
小計行の合計値など画面に表示されるものほぼ全てサーバー側での計算値だ
900デフォルトの名無しさん
2023/09/02(土) 14:40:30.69ID:CPf5VJuY >メッセージの仲介所
>デコボコしてて綺麗にくっつかない場合に間に入るつめも
これが先じゃないんだよ
例えば、学生を扱う時に「Student」クラス作ってNameとかAgeとか
状態持たせて「モデル化」するのと同じように
作る画面を同じように状態抜き出してロジック与えて名前を
付けたものがViewModel
こっちが先
>デコボコしてて綺麗にくっつかない場合に間に入るつめも
これが先じゃないんだよ
例えば、学生を扱う時に「Student」クラス作ってNameとかAgeとか
状態持たせて「モデル化」するのと同じように
作る画面を同じように状態抜き出してロジック与えて名前を
付けたものがViewModel
こっちが先
901デフォルトの名無しさん
2023/09/02(土) 14:48:44.91ID:CPf5VJuY で、ViewModelの実装において画面が複雑なら、ビューモデルに書くプレゼンテーションロジック
が複雑になるし、Modelにドメインロジックの実行を依頼したりする
だから、
>メッセージの仲介所
とか表現が極端すぎる
ViewModelは画面をモデル化したもので、立派に独自のプレゼンテーションステート
やプレゼンテーションロジックも持つ立派な1つのエンティティです
が複雑になるし、Modelにドメインロジックの実行を依頼したりする
だから、
>メッセージの仲介所
とか表現が極端すぎる
ViewModelは画面をモデル化したもので、立派に独自のプレゼンテーションステート
やプレゼンテーションロジックも持つ立派な1つのエンティティです
902デフォルトの名無しさん
2023/09/02(土) 15:38:06.62ID:5BMaIqoW >>900
>作る画面を同じように状態抜き出してロジック与えて名前を
>付けたものがViewModel
作る画面(View)のもとになるのがModelなのでその過程をどの程度意識しているかどうか
言い換えればViewを所与のものとして受け取っているかどうかの違いでは?
それ以外の点はほぼ賛同できる
>作る画面を同じように状態抜き出してロジック与えて名前を
>付けたものがViewModel
作る画面(View)のもとになるのがModelなのでその過程をどの程度意識しているかどうか
言い換えればViewを所与のものとして受け取っているかどうかの違いでは?
それ以外の点はほぼ賛同できる
903デフォルトの名無しさん
2023/09/02(土) 16:13:13.84ID:ePvjWEyO >>902
>作る画面(View)のもとになるのがModelなのでその過程をどの程度意識しているかどうか
アプリケーションの実装はそう考える場合があるかもしれんがMVVMパターンとして
MとVMにそういう関係があることを求めてはいないと思うがな。
>作る画面(View)のもとになるのがModelなのでその過程をどの程度意識しているかどうか
アプリケーションの実装はそう考える場合があるかもしれんがMVVMパターンとして
MとVMにそういう関係があることを求めてはいないと思うがな。
904デフォルトの名無しさん
2023/09/02(土) 16:37:06.13ID:CPf5VJuY905デフォルトの名無しさん
2023/09/02(土) 17:02:01.28ID:fwdoqn2z 自分でロジックブーメラン投げて刺さってるし触れるだけ無駄なんだなと
ヒマつぶしにriga○○が何なのか調べてみたけどわからなかった
更に調べるとかなり前から懐かしのugayaのことをrigayaと言ってる人物がいる
多分この人なんだろう
rigayaと言うのは別人がいてNVEncの作者
ヒマつぶしにriga○○が何なのか調べてみたけどわからなかった
更に調べるとかなり前から懐かしのugayaのことをrigayaと言ってる人物がいる
多分この人なんだろう
rigayaと言うのは別人がいてNVEncの作者
906デフォルトの名無しさん
2023/09/02(土) 17:08:17.47ID:CPf5VJuY907デフォルトの名無しさん
2023/09/02(土) 17:18:55.85ID:fwdoqn2z ロジックブーメラン
908デフォルトの名無しさん
2023/09/02(土) 17:35:30.95ID:CPf5VJuY 何、しつこく
それも謝ってほしいのか?
すみませんでした
それも謝ってほしいのか?
すみませんでした
909デフォルトの名無しさん
2023/09/02(土) 17:45:52.02ID:ePvjWEyO なんの話をしているんだろうと思ったがこれか?
https://ugaya40.hateblo.jp/entry/model-mistake
https://ugaya40.hateblo.jp/entry/model-mistake
910デフォルトの名無しさん
2023/09/02(土) 17:57:45.40ID:CPf5VJuY そうそれ
全部Modelに押し込めってことか?って事で
FatModelって勝手に呼んだけど
完全な正解はないから俺も含めてみんなおれおれMVVMを信じるだけw
全部Modelに押し込めってことか?って事で
FatModelって勝手に呼んだけど
完全な正解はないから俺も含めてみんなおれおれMVVMを信じるだけw
911デフォルトの名無しさん
2023/09/02(土) 18:42:57.12ID:ePvjWEyO 俺も>>909はVMの要件とは思わんな。
ただ、V→VM→Mというクリーンアーキテクチャで考えるならMからVMへの依存性逆転に使うインターフェースは
M側に含めることになるかな。それが「Modelの影」にあたるのかもしれんが。
言葉としては違和感があるな。どっちかというと「Viewの影」の方がしっくりくる。
ただ、V→VM→Mというクリーンアーキテクチャで考えるならMからVMへの依存性逆転に使うインターフェースは
M側に含めることになるかな。それが「Modelの影」にあたるのかもしれんが。
言葉としては違和感があるな。どっちかというと「Viewの影」の方がしっくりくる。
912デフォルトの名無しさん
2023/09/02(土) 22:11:29.82ID:fOS98KnE 「Viewの影」か...
VMにはMからの応答データ以外にも
カレントフォーカスやら
リスト系入力コントロールのカレントインデックスやら
入力コントロールの変更前値なども保持してるね
これらはMではあまり取扱かわない
VMにはMからの応答データ以外にも
カレントフォーカスやら
リスト系入力コントロールのカレントインデックスやら
入力コントロールの変更前値なども保持してるね
これらはMではあまり取扱かわない
913デフォルトの名無しさん
2023/09/03(日) 18:43:28.44ID:PKYmB8Sw >>911
Mにインジェクションはまずくね?
そもそも、EntityやModelは定義とロジックが入るクラスで、かつ、Domainに属するクラス。
ViewとViewModelはApplicationレイヤー。
Domainとは、外部参照ができない領域で、そこにPropertyインジェクションはリスクを覚悟した使い方。
何事もトリッキーが必要になる事はあるが、SOLID原則は可能な限り守るべき。
Mにインジェクションはまずくね?
そもそも、EntityやModelは定義とロジックが入るクラスで、かつ、Domainに属するクラス。
ViewとViewModelはApplicationレイヤー。
Domainとは、外部参照ができない領域で、そこにPropertyインジェクションはリスクを覚悟した使い方。
何事もトリッキーが必要になる事はあるが、SOLID原則は可能な限り守るべき。
914デフォルトの名無しさん
2023/09/03(日) 18:47:29.66ID:McvOhRnv この5chブラウザって実行できねぇじゃねぇかよ
とりあえずWindows 11 ProのSandbox環境立ち上げて
実行してもSeach app in the store?だっけ?
とダイアログが出て実行できねぇ
.NET 7のランタイムとかいれてもだめやわ
だるっ
とりあえずWindows 11 ProのSandbox環境立ち上げて
実行してもSeach app in the store?だっけ?
とダイアログが出て実行できねぇ
.NET 7のランタイムとかいれてもだめやわ
だるっ
915デフォルトの名無しさん
2023/09/03(日) 19:07:48.99ID:Zxyqi4pM916デフォルトの名無しさん
2023/09/03(日) 20:37:38.19ID:TWuH3asg 本来のMVVMだとVMがMに命令を出してその結果をVMのプロパティーに反映だが
コレクションはMに無いとどうにもならないし、それをVMがリダイレクトする
この時点で初期のVMMVは破綻しているよな
コレクションはMに無いとどうにもならないし、それをVMがリダイレクトする
この時点で初期のVMMVは破綻しているよな
917デフォルトの名無しさん
2023/09/03(日) 21:08:54.26ID:0JPdNbB1 デザイナーとプログラマーと別けてやるならそうだか、自分一人でやるんならマイルールで頑張れば良い。他人は他人、気にせずに行こう!
918デフォルトの名無しさん
2023/09/03(日) 21:16:42.81ID:Zxyqi4pM919デフォルトの名無しさん
2023/09/03(日) 22:05:14.34ID:Dhh2faXN 【クライアント側】
View (WPF)
ViewModel(WPF)
Model(c#, 業務ロジック以外のロジック、例えばUI処理に必要なロジックなど)
【サーバー側】
Model(c#, 業務ロジック)
みたいに実際はクライアント側にもModelが必要になる事が多い
View (WPF)
ViewModel(WPF)
Model(c#, 業務ロジック以外のロジック、例えばUI処理に必要なロジックなど)
【サーバー側】
Model(c#, 業務ロジック)
みたいに実際はクライアント側にもModelが必要になる事が多い
920デフォルトの名無しさん
2023/09/03(日) 22:46:24.33ID:TWuH3asg >>918
創世記の頃はさっき書いたようなのだったが、ビジネスロジックをほぼ全てMに書く派閥ができてカオスになった
あと、ReactivePropertyでMから簡単にリダイレクト出来るようになったのも大きい
創世記の頃はさっき書いたようなのだったが、ビジネスロジックをほぼ全てMに書く派閥ができてカオスになった
あと、ReactivePropertyでMから簡単にリダイレクト出来るようになったのも大きい
921デフォルトの名無しさん
2023/09/03(日) 23:12:27.45ID:3gQjLtaF 今時はPropertyChanged.FodyやObservablePropertyで自動化
便利になりました
便利になりました
922デフォルトの名無しさん
2023/09/03(日) 23:49:15.10ID:Dhh2faXN クライアント側やクライアント側にもModelが存在しえるが
ここにはUI要素が殆どなく(あったとしても抽象化されている)
WPF以外からも再利用が可能だ
ViewModelは特定のView専用に実装されており
異なる種類のViewの実装から再利用する事は望めないのが普通だ
ここにはUI要素が殆どなく(あったとしても抽象化されている)
WPF以外からも再利用が可能だ
ViewModelは特定のView専用に実装されており
異なる種類のViewの実装から再利用する事は望めないのが普通だ
923デフォルトの名無しさん
2023/09/03(日) 23:50:04.10ID:Dhh2faXN 訂正)サーバー側やクライアント側にもModelが存在しえるが
924デフォルトの名無しさん
2023/09/04(月) 01:14:09.52ID:vsxnPNVu VewModelはViewの構成要素(データやコマンド)には依存するけど実装には依存しないでしょ
925デフォルトの名無しさん
2023/09/04(月) 19:44:13.60ID:J0Btfpeo 昔SilverLightと言うのがありまして…
926デフォルトの名無しさん
2023/09/04(月) 19:56:38.46ID:1eoZIF84 光ちゃん好き
927デフォルトの名無しさん
2023/09/04(月) 20:00:29.56ID:fuW/8CV2 M、VMはそのままで、VをWPFでもUWPでもUnoでもMAUIでもコマンドプロンプトでもまだ存在しないビューにしても成り立つのが理想のMVVM
まあ本体のバージョンやらなんやらで制約受けるんだけども
まあ本体のバージョンやらなんやらで制約受けるんだけども
928デフォルトの名無しさん
2023/09/04(月) 22:51:14.61ID:7E+/PPwt929デフォルトの名無しさん
2023/09/04(月) 23:30:01.70ID:J0Btfpeo 前からいるVMは作り直さなくてもいいと言う人は実際に使ってない気がするんだな
930デフォルトの名無しさん
2023/09/05(火) 05:52:19.52ID:DX9vicfo Vが変わったらVMも作り直しとかそもそもお前のはMVVMじゃないぞ
931デフォルトの名無しさん
2023/09/05(火) 20:28:59.35ID:qu07bRnx MVVMでは、Modelはただの定義であって、それがどこにあろうが、ローカルインスタンスはViewModelにある。
ModelインスタンスはViewにバイディングされるが、Model管理はサブスティチューターやインタラクター等の中間介在者経由で行う。
Modelにインジェクションは、中にパーサーを持たせ、ファイヤーや他にアソシエートさせるという事だろうが、それは、再利用性を損ねる事になる。
MVVMは見かけはMVVMだが、実際には、疎結合実現のために、取り巻くサービスから構成される。
ModelインスタンスはViewにバイディングされるが、Model管理はサブスティチューターやインタラクター等の中間介在者経由で行う。
Modelにインジェクションは、中にパーサーを持たせ、ファイヤーや他にアソシエートさせるという事だろうが、それは、再利用性を損ねる事になる。
MVVMは見かけはMVVMだが、実際には、疎結合実現のために、取り巻くサービスから構成される。
932デフォルトの名無しさん
2023/09/05(火) 21:33:41.74ID:s337iXA9 お前の中ではな
933デフォルトの名無しさん
2023/09/05(火) 21:50:07.00ID:vxLs2+zd ここに限らずプログラマー板は全般的に設計の話題になるとグダグダだよね
934デフォルトの名無しさん
2023/09/05(火) 22:14:49.56ID:FTgFHkq3 もう今はMFC/WinForms/WPFという過去の遺産グループに一括りにされる時代なのよね
WPFはなんていうか、オーパーツを発掘してる気分、腐ってやがる早すぎたんだって
WPFはなんていうか、オーパーツを発掘してる気分、腐ってやがる早すぎたんだって
935デフォルトの名無しさん
2023/09/05(火) 22:47:35.31ID:vcpA6cRm 何が言いたいのかさっぱり
936デフォルトの名無しさん
2023/09/06(水) 05:28:15.62ID:CIPjTMvR 結局プログラム言語とかプログラミング作法じゃなくてアイデアなんだよな。
それをセンスと言うのかな?
MVVMはオートメーションの作法なんだよ。
俺は機械作業の一部になりたくないな。
それをセンスと言うのかな?
MVVMはオートメーションの作法なんだよ。
俺は機械作業の一部になりたくないな。
937デフォルトの名無しさん
2023/09/06(水) 06:00:45.77ID:aEV5JQPD ViewModelの再利用性なんて無限のコストをかけていいならいいけどさ
円周率を表示するアプリがあって3.14と表示するかおよそ3と表示するか画像取り込んで表示するかなんて
Viewの仕様次第でいくらでも膨らむのにどうやってViewModelの再利用性を決めるんだ?
円周率を表示するアプリがあって3.14と表示するかおよそ3と表示するか画像取り込んで表示するかなんて
Viewの仕様次第でいくらでも膨らむのにどうやってViewModelの再利用性を決めるんだ?
938デフォルトの名無しさん
2023/09/06(水) 06:51:57.86ID:CIPjTMvR UIは変化(進化)するWindowsとandroidも違うし、あと数年でMVVMなんて有ったなぁとなるかも知れない。昔の構造化とか。
939デフォルトの名無しさん
2023/09/06(水) 09:12:10.70ID:UTcPybKQ MVVM言いたいだけ
940デフォルトの名無しさん
2023/09/06(水) 09:46:23.58ID:iXwPGoYi おののののか
みたいな?
みたいな?
941デフォルトの名無しさん
2023/09/06(水) 09:47:40.27ID:gzG1FQ5Q942デフォルトの名無しさん
2023/09/06(水) 11:09:07.24ID:EbyA7lxn データをどう見せるかなんてViewのシゴトだしな
コードビハインド書きたくないとかはワガママだ
コードビハインド書きたくないとかはワガママだ
943デフォルトの名無しさん
2023/09/06(水) 11:35:08.73ID:Hs78urxK944デフォルトの名無しさん
2023/09/06(水) 11:44:28.70ID:CARezZ1i あくまでも個人の感想です。
945デフォルトの名無しさん
2023/09/06(水) 11:57:04.90ID:jZLgLXW4 VMはVに依存する=WPFならWPF専用になる
汎用クラスだけでVMが書けない以上不可能なんだよね
汎用クラスだけでVMが書けない以上不可能なんだよね
946デフォルトの名無しさん
2023/09/06(水) 13:38:44.54ID:d8gQVss7 MVVMじゃなくてViewとModelだけのVMパターンだね
947デフォルトの名無しさん
2023/09/06(水) 19:08:19.79ID:49e0pxsZ 最終的にはそういう事
m vm vをどうしても二つのグループに分けると
v vm とmグループになる
vm再利用とかありえない
m vm vをどうしても二つのグループに分けると
v vm とmグループになる
vm再利用とかありえない
948デフォルトの名無しさん
2023/09/06(水) 20:03:38.91ID:R922v4XL949デフォルトの名無しさん
2023/09/06(水) 20:08:53.79ID:ZnJznt7P WPFのはMVVMというよりblandパターン
MVVMとは関係ない実装がVMに多すぎ
MVVMとは関係ない実装がVMに多すぎ
950デフォルトの名無しさん
2023/09/06(水) 21:58:31.52ID:H3c+Isko blandパターンって何やねん
951mdysdev ◆XSDsAilQpD0E
2023/09/08(金) 20:01:30.51ID:xsuhKaXw WPFはパフォーマンスでないねぇ
UI仮想化しないと初期表示がくっそ遅いし、仮想化するとスクロールがガクガクする
WebViewを試してみるか
UI仮想化しないと初期表示がくっそ遅いし、仮想化するとスクロールがガクガクする
WebViewを試してみるか
952デフォルトの名無しさん
2023/09/08(金) 20:04:01.88ID:uWWTBRXF >>951
WPFからReactに移ったときWeb速や!って思た
WPFからReactに移ったときWeb速や!って思た
953デフォルトの名無しさん
2023/09/08(金) 20:57:27.63ID:AJzWVUJo WPFってそんなやべぇやつだっけ?
昔、UWPアプリで、6年くらい前のスマホSoCのatomのタブレットでスクロールちょっと重いなと
格闘した記憶あるけどデスクトップPCやろ?
昔、UWPアプリで、6年くらい前のスマホSoCのatomのタブレットでスクロールちょっと重いなと
格闘した記憶あるけどデスクトップPCやろ?
954デフォルトの名無しさん
2023/09/08(金) 21:01:43.66ID:AJzWVUJo UWPアプリのしたらばリーダーみたいのMicrosoft Store
になかったけ?
それでスクロール試してみん
サムネイル画像の表示とかもやってたはず
になかったけ?
それでスクロール試してみん
サムネイル画像の表示とかもやってたはず
955デフォルトの名無しさん
2023/09/08(金) 21:15:10.75ID:AJzWVUJo コードみたけどレスの表示にRichTextBox使ってるの?
これ重いんじゃ?
TextBlockとかでがんばるとか
ってどの部分重いのか知らんが
レス表示だよね?
これ重いんじゃ?
TextBlockとかでがんばるとか
ってどの部分重いのか知らんが
レス表示だよね?
956デフォルトの名無しさん
2023/09/08(金) 21:30:39.96ID:/3OGw28W UI仮想化してるならコンテナーのリサイクルも有効にしてる?
957mdysdev ◆XSDsAilQpD0E
2023/09/08(金) 21:49:54.47ID:xsuhKaXw958mdysdev ◆XSDsAilQpD0E
2023/09/08(金) 21:58:52.02ID:xsuhKaXw 説明不足ですみません。
重いのはレス表示の部分。
範囲選択させたり、ハイパーリンク埋め込んだりなのでRichTextBox使ってる。
UI仮想化すると初期表示は早いけど、スクロールがガクガクだったり前回表示位置が上手く取得できなかったりとギブアップ気味。
これ以上この部分に時間かけるのもどうかと思い出した次第です
重いのはレス表示の部分。
範囲選択させたり、ハイパーリンク埋め込んだりなのでRichTextBox使ってる。
UI仮想化すると初期表示は早いけど、スクロールがガクガクだったり前回表示位置が上手く取得できなかったりとギブアップ気味。
これ以上この部分に時間かけるのもどうかと思い出した次第です
959デフォルトの名無しさん
2023/09/08(金) 22:09:56.39ID:/3OGw28W 大量のデータならデータ仮想化もした方が良さそうだけど
960デフォルトの名無しさん
2023/09/08(金) 22:21:08.42ID:AJzWVUJo RichTextBoxの範囲選択はあきらめたほうがいい
Janeとかもできないやろ?
Webブラウザ使ってる余裕sikiはできるだろうが
TextBlockでもマルチスタイルのインラインリンクぐらいはできなったっけ
Janeとかもできないやろ?
Webブラウザ使ってる余裕sikiはできるだろうが
TextBlockでもマルチスタイルのインラインリンクぐらいはできなったっけ
961デフォルトの名無しさん
2023/09/08(金) 22:28:15.74ID:AJzWVUJo962デフォルトの名無しさん
2023/09/08(金) 23:00:10.22ID:ZMs2WmkU 10年以上前に自分が通った道を他人が歩いているのを見ている
今はIEコンポーネントもないしな
今はIEコンポーネントもないしな
963デフォルトの名無しさん
2023/09/08(金) 23:13:15.61ID:ZMs2WmkU 自分もrichtextboxから始めたけど開発スタート初日から見限った
これはダメだと
今より全然マシンパワーなかったから当然かと
Sikiは仕組み上遅くなるのが分かってるのでもうそういう既存の仕組みを使わないで自力描画してるようだ
レスをパースして行数計算して文字のフォントサイズを実際に脇に描画してそれを元に文字サイズを推定して
表示部分だけ自前描画
過去の自分も似たようなところにたどり着いて外部Dllを作ったがいろいろとうまくいかずc++からは戻って来た
でもかなりレベルアップしたような実感が得られた(個人の感想です)
これはダメだと
今より全然マシンパワーなかったから当然かと
Sikiは仕組み上遅くなるのが分かってるのでもうそういう既存の仕組みを使わないで自力描画してるようだ
レスをパースして行数計算して文字のフォントサイズを実際に脇に描画してそれを元に文字サイズを推定して
表示部分だけ自前描画
過去の自分も似たようなところにたどり着いて外部Dllを作ったがいろいろとうまくいかずc++からは戻って来た
でもかなりレベルアップしたような実感が得られた(個人の感想です)
964デフォルトの名無しさん
2023/09/08(金) 23:21:58.63ID:ZMs2WmkU 過去にここ?かc#のスレでたまに質問して技術を探ったがまともに回答できるレベルの人間はいなかった
結局フレームワークが提供するものを使わずに自前の疑似描画が最速なんだけど
それがわかったとしてそこからは精神の問題になる
長い試行錯誤とこれは自分にとって時間をかける意味のあることなのかと自問自答
結局フレームワークが提供するものを使わずに自前の疑似描画が最速なんだけど
それがわかったとしてそこからは精神の問題になる
長い試行錯誤とこれは自分にとって時間をかける意味のあることなのかと自問自答
965デフォルトの名無しさん
2023/09/09(土) 00:57:33.07ID:hHjqEXWc966デフォルトの名無しさん
2023/09/09(土) 01:14:55.16ID:12n4cwT7 スレチだが、個人的には read.crx 2 をフォークするなりしてほしい
いまどき「Windows専用の5chクライアント」はちょっと...
いまどき「Windows専用の5chクライアント」はちょっと...
967デフォルトの名無しさん
2023/09/09(土) 01:26:18.10ID:OYJBfPAk 人のやることにケチ付けてないで、自分で作れば
968デフォルトの名無しさん
2023/09/09(土) 02:13:46.91ID:K25duMZT んだんだ
969デフォルトの名無しさん
2023/09/09(土) 02:39:19.20ID:fuRqrN4P 出来の良いエンジニアが全員Webで開発してるから仕方ない
970mdysdev● ◆XSDsAilQpD0E
2023/09/09(土) 06:59:15.87ID:xfSBfAyx スレ立てさせてください
971mdysdev ◆XSDsAilQpD0E
2023/09/09(土) 07:03:42.77ID:xfSBfAyx972mdysdev ◆XSDsAilQpD0E
2023/09/09(土) 07:16:20.48ID:xfSBfAyx973デフォルトの名無しさん
2023/09/09(土) 15:42:58.83ID:hHjqEXWc974デフォルトの名無しさん
2023/09/09(土) 15:49:37.56ID:hHjqEXWc UWPとかそこら辺高速化する
事前バインディング(x:Bind)や段階的レンダリング(x:Phase)みたいのあるけど
どれくらい効果あるのやら
事前バインディング(x:Bind)や段階的レンダリング(x:Phase)みたいのあるけど
どれくらい効果あるのやら
975デフォルトの名無しさん
2023/09/09(土) 18:25:25.91ID:hHjqEXWc976mdysdev ◆XSDsAilQpD0E
2023/09/09(土) 19:33:09.18ID:xfSBfAyx >>975
Recycling指定しただけだと表示されるレスがぐちゃぐちゃになってませんか?
結局RichTextBoxLoadedを呼びなおしてInline作らないといけないので、Recycling指定してもしなくても体感が変わらない気がします
(というか変わらなかった)
あとUI仮想化するときの致命点として、
表示されている近辺しかUIをメモリに保持していないので、
レス内の文字列検索する場合に全部探せないっていうのが・・
Recycling指定しただけだと表示されるレスがぐちゃぐちゃになってませんか?
結局RichTextBoxLoadedを呼びなおしてInline作らないといけないので、Recycling指定してもしなくても体感が変わらない気がします
(というか変わらなかった)
あとUI仮想化するときの致命点として、
表示されている近辺しかUIをメモリに保持していないので、
レス内の文字列検索する場合に全部探せないっていうのが・・
977デフォルトの名無しさん
2023/09/09(土) 20:11:19.23ID:hHjqEXWc >>976
そっか
中身全然見てなかったww
元々LoadedでセットしてたからRecycleするとLoaded呼ばれなくなって中身が
更新されてなかったら速くなってたのかw
悪かった
>レス内の文字列検索する場合に全部探せないっていうの
ああ、これはRichTextBoxの機能でやろうとしてる?
MVVM的にはViewModelのほうが全部データ持ってるはずだけど
そっか
中身全然見てなかったww
元々LoadedでセットしてたからRecycleするとLoaded呼ばれなくなって中身が
更新されてなかったら速くなってたのかw
悪かった
>レス内の文字列検索する場合に全部探せないっていうの
ああ、これはRichTextBoxの機能でやろうとしてる?
MVVM的にはViewModelのほうが全部データ持ってるはずだけど
978mdysdev ◆XSDsAilQpD0E
2023/09/09(土) 20:28:03.21ID:xfSBfAyx >>977
「検索にヒットしたレスだけを抜き出して表示」ならVMを検索してDataContextを再設定すればいいと思う。
ただ「レスを表示したまま」っていう要件で例えば検索ワードの背景色だけを変えたい場合って
UIに全レスが読み込まれてないと出来ない気がするんだけど何かうまい方法あります?
「検索にヒットしたレスだけを抜き出して表示」ならVMを検索してDataContextを再設定すればいいと思う。
ただ「レスを表示したまま」っていう要件で例えば検索ワードの背景色だけを変えたい場合って
UIに全レスが読み込まれてないと出来ない気がするんだけど何かうまい方法あります?
979デフォルトの名無しさん
2023/09/09(土) 20:53:19.09ID:hHjqEXWc981デフォルトの名無しさん
2023/09/09(土) 22:52:24.90ID:6wE+xkUP 色々ひっくり返るけど、WebView2でやるのが一番いいんじゃないかな?
982デフォルトの名無しさん
2023/09/10(日) 00:01:36.42ID:HR/6NGES WebviewでやるならBlazor Hybridの方が良いかも?
C#と連携しやすいし
C#と連携しやすいし
983デフォルトの名無しさん
2023/09/10(日) 00:12:18.74ID:/4aaxiYm winformsとかwpfの案件ばかり渡り歩いてきたけどやっぱり斜陽なのかなぁ。きっちりウェブとかスマホアプリとかの勉強してそっちに軸足動かさないといかんのだろうか
とにかく不安で不安でしょうがない。何が一番不安ってwinformsやwpf本体以上にそういう現場って周りの開発環境自体もすごく古めかしいことが多い
git?何それ?みたいなことばかり
とにかく不安で不安でしょうがない。何が一番不安ってwinformsやwpf本体以上にそういう現場って周りの開発環境自体もすごく古めかしいことが多い
git?何それ?みたいなことばかり
984デフォルトの名無しさん
2023/09/10(日) 00:16:03.86ID:L5K9/P3E そういうのはプログラマー板でやって
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【悲報】日本人「俺以外の日本人が中国と戦ってくれるぞ!」 [616817505]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 維新の吉村代表「高市総理に中国総領事の国外退去を要請した。今後、知事として中国イベントには出席しない」 [359572271]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【悲報】あまりにも高市早苗の頭が悪過ぎて「これは確かに野党が配慮して質問するべきだったのでは」と結論が出てしまう [517791167]
