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

■ このスレッドは過去ログ倉庫に格納されています
2023/01/22(日) 05:53:16.97ID:oY263ilm
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/
369デフォルトの名無しさん
垢版 |
2023/05/15(月) 19:42:06.89ID:RajzSWfQ
MVVM使うほどのアプリ作ってないしなぁ。

CANVASで帳票印刷してるんだがwindow作ってそれのコンテンツプロパティに
CANVAS指定でプレビューできんのな。
しかも使用してるモニタが93DPIなんでほぼ原寸で出てた。感動したわ。
2023/05/15(月) 20:42:41.83ID:WX+SovFb
>>369
そういうときコードビハインドでやってるの?
それとも>>368みたいな感じ?
371デフォルトの名無しさん
垢版 |
2023/05/15(月) 22:09:33.99ID:RajzSWfQ
分からないという事もあり、アンチMVVM!
2023/05/15(月) 22:35:33.78ID:0oc4REo8
そもそもバインドするデータが無い
という場合はどうしょうもないな
2023/05/16(火) 08:12:50.00ID:scMhFUkR
Canvasって、ViewModelとChildrenバインドできたっけ?
XamlからItemSource、ItemTemplate使ってもうまくいかなかったような・・・
仕方なくコードビハインドでやった記憶がある。
2023/05/16(火) 09:49:54.49ID:202gI0ra
そういうときはサービスクラスを作ってカプセル化してVからVMにインジェクションする
って、書いただけじゃ伝わらないよな
2023/05/16(火) 16:18:50.60ID:/dwC7JTn
>>374
もうちょっと具体的に紹介してよ
376デフォルトの名無しさん
垢版 |
2023/05/16(火) 18:01:09.06ID:4Qe65khc
MとかVMとか、なんか、いろいろ難しそうなことやってんだな。。
2023/05/16(火) 19:51:15.02ID:n3YZZSHv
データグリッドの値をいじったりするのは
データバインドしなきゃやっとれんでしょ
378デフォルトの名無しさん
垢版 |
2023/05/16(火) 20:00:54.76ID:4Qe65khc
そんなことはあるまい。
379デフォルトの名無しさん
垢版 |
2023/05/16(火) 20:07:59.79ID:MBYEcVuB
MVVMっぽい何かはしてるけど
たいした物つくらないから時間の無駄な気がしてならない
2023/05/16(火) 20:46:43.78ID:yTYZJaUk
データグリッドをバインドなしで扱うとするとイベントハンドラでゴリゴリデータ書き換え?
381デフォルトの名無しさん
垢版 |
2023/05/16(火) 20:54:05.20ID:4Qe65khc
データグリッドの殆どがDBとかCSVからのデータ表示用だろ。入力もあるけど。
だから検索して表示した後は放置。必要があればまた全更新。
だからゴリゴリデータ書き換えって事態はないんじゃね。

しかしデータグリッド早いよな。7000件をCSVから全表示させても1秒かかるか
どうかって感じ。非同期化してたのを戻したわ。
2023/05/16(火) 21:10:29.48ID:HznneTlP
いや、データ編集ありの場合にデータバインドなしでどうやんの?って話の流れでしょ
383デフォルトの名無しさん
垢版 |
2023/05/17(水) 07:05:06.66ID:Lo59nD5D
データグリッドに手を加えてバイディングなしでやってた。
2023/05/17(水) 15:05:01.97ID:k2sfi7EW
またmっvmかよ
2023/05/17(水) 18:00:09.26ID:ELtH3TLu
なぜMVVMかって?
ドメインモデルに集約するためさ。 .Net Conf 2022でも2023でも聴講すればわかる。
>374のような、ボケスタイルはやらない。 
DIでレポジかインスタンス参照を渡すとか言ってるんだろうが、VMからV参照は双方向参照。
SOLID原則を学べ・・・ と言いたい。
386デフォルトの名無しさん
垢版 |
2023/05/17(水) 20:16:07.84ID:Lo59nD5D
さっぱりわからんわ〜。
ま、大事なのは要件が実装できかどうかだと思っている。
2023/05/17(水) 20:53:45.90ID:KKhsw4JF
>>375
1.例えばCanvasのようなUI部品をプロパティーに持ち、それをアクセスルルメソッドなどで構成されたサービスクラスを作る
2.VMでインスタンス化してプロパティーとして公開
3.VのコンストラクタでVMで公開されているサービスのインスタンスに自身のCanvasのインスタンスを挿入
4.VMからはサービスクラスを介してUI部品をメソッドを使って簡単にアクセスできるようにする
5.単体テストが必要な場合はサービスクラスのインターフェースを用意して、スタブでデバッグする

つか、WinUI3のConnectedAnimationなど、このやり方じゃないと不可能だよ
388デフォルトの名無しさん
垢版 |
2023/05/17(水) 21:01:02.55ID:Lo59nD5D
ますます分からなくなった!
2023/05/18(木) 00:26:14.80ID:M0TxVFb2
1.例えばCanvasのようなUI部品を持つMyView.xamlクラスを作る
2.VMでプロパティーとして公開
3.VのコンストラクタでVMで公開されているMyView型のプロパティに自身のthisを挿入
4.VMからはプロパティを介してUI部品に簡単にアクセスできる
5.単体テストが必要な場合はViewのインターフェースを用意して、スタブでデバッグする
390デフォルトの名無しさん
垢版 |
2023/05/18(木) 20:30:12.83ID:NmURz+IP
難しい〜
どんな凄いアプリ作ってんだ?!
391デフォルトの名無しさん
垢版 |
2023/05/18(木) 21:22:50.78ID:NmURz+IP
new FixedPage() と canvas で両面印刷はどうすんだ?
片面しかできん。
2023/05/18(木) 21:44:03.34ID:67t/SXkw
>>389
VMにVのインスタンスを注入すれば機能的には全く問題ないんだろうが
ちょっと不細工だから不採用だな

好みの問題なんだが
2023/05/18(木) 22:20:22.72ID:oHW8akGV
原則としてVMがVに直接依存するべきでないからそこに依存性逆転パターン使うわけやね
2023/05/19(金) 16:09:03.65ID:6FflI5yr
MVVMとデータバインドをごっちゃに考えてしまう
395デフォルトの名無しさん
垢版 |
2023/05/19(金) 19:27:50.45ID:FoiQio6I
MVVMの話は難しいな〜。ホンマ感心するわ。
で、new FixedPage() と canvas での両面印刷はどうするんでしょう。
こちらもお願いします。。
2023/05/19(金) 20:40:03.06ID:pCo6gpmL
今回シンプルな画面だしイベント駆動でいっかー

あれよあれよと言う間に仕様追加で画面ゴテゴテ

こんなんならデータバインドで作ってたわ・・・(いまここ)
2023/05/20(土) 05:27:38.90ID:bdMg4j0I
そもそもVMでUIElementを操作するなという事では?
DIP原則守る為としてインターフェースをVMにインジェクションしても、そのRepository経由でコンテナーのUIElement操作したら本末転倒。
とどのつまり、UIElementをコードで操作するような場合は素直にコードビハインドでやれという事。
DataGridにエクセルの操作性追加や選択範囲のデータ取得、Adonerにグラブハンドル入れてCanvasのShapeをResizableにしたり等々の処理をVMでやるとかあり得ない。
398デフォルトの名無しさん
垢版 |
2023/05/20(土) 08:57:25.79ID:B3aysABv
>>391
自己レスになるがFixedDocument() で土台作ってFixedPage()で全ページをaddして
最後にXpsDocumentWriterで一気にプリンタにデータ送って両面印刷できた。
プリンタダイアログの設定で袋とじとか自動的にその通りに印刷された。楽だなこれ。
2023/05/20(土) 09:00:00.77ID:mmZhl8HV
>そもそもVMでUIElementを操作するなという事では?
>DIP原則守る為としてインターフェースをVMにインジェクションしても、そのRepository経由でコンテナーのUIElement操作したら本末転倒。

本末転倒ってのはどういうところが?
UIElement へ直接依存することが問題だしそれを切り離せればとりあえず問題はないと思うが。
2023/05/20(土) 10:26:20.92ID:hKeHfHFy
分かってると思うけど >>389 は皮肉だぞ
2023/05/20(土) 16:23:18.29ID:mmZhl8HV
>>389 に問題があるのは当然として >>397 はそれを依存性逆転で改善したうえでの話と思ったが。
2023/05/20(土) 16:42:27.96ID:MBF+Fo/f
>>389は一応動くから、ちょっとやばいけど使っている人がいても不思議じゃないと思ったわ
>>387のやり方で何も問題なく見えるが>>400の方は何が気に食わなかったのやら
403デフォルトの名無しさん
垢版 |
2023/05/21(日) 06:10:54.88ID:Elr5wk/3
マルチスレッドや印刷、GDI、ソケット、、そういう事が出来る奴の方が頼もしいわ。
結局誰も>>391の質問に答えられないし、プログラマの勉強に終わりは無いな。
2023/05/21(日) 09:44:52.17ID:WLjUQB8s
質問の意味が分からんからな
裏写りを表現したいということかな?
405デフォルトの名無しさん
垢版 |
2023/05/21(日) 10:05:20.77ID:Elr5wk/3
>>397
とかどうやって勉強したんだ。本?
2023/05/21(日) 12:36:49.38ID:VUm7ancq
>>403
>結局誰も>>391の質問に答えられないし
ChatGPTに聞けば答えてくれるよ
ほんと便利な時代になったもんだね

DocumentViewerとDocumentPaginatorを使ってCanvasをPagenationできるようにする
もしくは
自分でページサイズに合わせてcanvas内の要素を複数のcanvasに分割して各FixedPageに割り当てる
FixedDocumentのPageContentとして各FixedPageを追加
2023/05/21(日) 18:52:32.73ID:CTJ8pTH5
>>405
POS開発と、CodeProjectと.NET Conf現地参加・・・ ITギークナカーマ一杯。
基板開発とクリーンアーキエンベッディドもやってるよ。
ESP32の広大なFLASH空間に満足しています。
408デフォルトの名無しさん
垢版 |
2023/05/21(日) 19:56:08.47ID:Elr5wk/3
組み込み系か。c言語で?
POSにしてもMVVMとは無関係ぽいが。
409デフォルトの名無しさん
垢版 |
2023/05/21(日) 21:25:54.24ID:2oe1bdCf
POSめちゃ関係あるやろ
業務系のなかでもぎゅうぎゅうに詰め込んだUIの典型
410デフォルトの名無しさん
垢版 |
2023/05/22(月) 07:28:05.97ID:B1W7qz7E
UIが多い == MVVMなのかい。
2023/05/22(月) 10:40:27.78ID:G50scNn0
UIが小規模でシンプルならMVVMにする利点が少ないのは確か
2023/05/22(月) 12:26:52.57ID:ELDsg2JM
MVVM面倒くさすぎるんじゃ
413デフォルトの名無しさん
垢版 |
2023/05/22(月) 19:02:59.28ID:B1W7qz7E
picだったな。メモリ少なくてアセンブリ使ってた。
MVVMは少数派。これ持論。
2023/05/22(月) 19:30:21.46ID://uiZhvt
何がなんの持論なんだかさっぱり
2023/05/22(月) 20:58:50.24ID:ZbjQP4KZ
つまり脳内では少数派ということなんだろう
416デフォルトの名無しさん
垢版 |
2023/05/22(月) 21:06:14.14ID:B1W7qz7E
MVVMのフレームワークは何が主流なんだい?
2023/05/22(月) 21:09:21.79ID:LcxeGXQe
>>413
いつの話?
最近なら結構リッチな環境になってそうだけど
2023/05/22(月) 21:10:12.98ID:650aSK01
>>413のどこに「論」があった?
2023/05/22(月) 21:23:00.27ID:650aSK01
MVVMは不要って言うならそれは持論と言えるけど
少数派って言われてもそりゃただの観測結果でしょとしか
2023/05/22(月) 21:25:30.98ID:0Q80TM1a
観測結果というより妄想?
2023/05/22(月) 22:12:02.55ID:GhXjprUX
周りに馬鹿しかいないど底辺なんだろ察してやれ
ここでいつもMVVM分からん言ってる奴はハナから覚える気無いジジイだから相手するだけ時間の無駄
2023/05/22(月) 22:40:26.93ID:kQxWLq4v
アセンブリが採用されるような案件は最初からMVVMは選択肢に入らんわな
そんなとこで少数派!少数派!って井の中のなんとやらでしかない
2023/05/23(火) 04:28:10.10ID:n2ndAtT+
何? このスレ。 数人以外カスばかりやん。 アホ草
424デフォルトの名無しさん
垢版 |
2023/05/23(火) 06:09:51.03ID:ExJFC8Fq
MVVMバリバリのユーザは50-60万円はもらってそうだな。
そのくらいは出て当然だと思う。
2023/05/23(火) 10:19:45.99ID:gVolEOCK
>>423が一番カスっぽい発言という高等ギャグ
2023/05/23(火) 10:36:48.80ID:3Hegzcg2
高等か?
2023/05/23(火) 11:04:41.99ID:K2e/wchZ
え?そんなとこ噛み付くの?
2023/05/23(火) 11:07:52.35ID:6rldbTL4
とりあえずWPFのスレでアセンブリ言語のことアセンブリと言うのやめなよ
2023/05/23(火) 15:07:15.85ID:LZSiSUgr
どこのスレであれ誤解を生むなら必要だし文脈から判断できるなら不要
2023/05/23(火) 15:15:19.78ID:6rldbTL4
さすがにややこしいわ
2023/05/23(火) 16:49:55.10ID:ckJ3AhZD
それはさすがに文章読解力に問題があるのでは?
2023/05/23(火) 17:21:10.69ID:6rldbTL4
読解力じゃなくアセンブリと書く方に日本語能力の大きな欠陥があるという話だぞ?w
読む方はちゃんと読み分けてるわけだしなw
2023/05/23(火) 17:23:12.98ID:uAOe//9g
C#使っててアセンブリ言語なんて使うことないからC#のスレでアセンブリ言語のこと何の説明もなくアセンブリって言われたら「アホの子かな?」と思うのが普通
2023/05/23(火) 17:35:11.12ID:cgIANDwC
ちゃんと読み分け出来てるってことはややこしくないってことだよね
2023/05/23(火) 17:59:47.57ID:DmnDg9MH
読み分ける方の言語能力が高いだけでややこしいのはかわりない
2023/05/23(火) 18:15:40.28ID:h3ro3yVV
日本語能力の欠陥とか強い言葉を使った方が勝ちみたいなゲームはノーサンキュー
2023/05/23(火) 18:16:10.30ID:m84tNyob
C#のスレでアセンブリって言ったらアセンブリのことに決まってんじゃん
アセンブリのことアセンブリって言うならちゃんと区別しろよってだけだろ
2023/05/23(火) 18:19:56.26ID:bf2Gh3nr
学校で「やっぱりデスクのせいだよな」って言ったらみんな頭にはてなマーク浮かべるだろ
他人に伝わるかどうか考えられないのは日本語能力に欠陥があると言われても仕方ないぞ
2023/05/23(火) 18:37:28.23ID:nNwcWvJ7
>>438
例えがヘタクソなのも日本語能力に欠陥があると思われても仕方ないね
2023/05/23(火) 18:47:00.72ID:bf2Gh3nr
たとえも何もそのままじゃんw
2023/05/23(火) 18:47:44.78ID:bf2Gh3nr
あ、そうか
ここがWPFのスレと気づいてなかったのか
それならたとえが悪かったなw
2023/05/23(火) 18:49:25.04ID:AI1g8QaO
アセンブリを知らなかったのかも
2023/05/23(火) 19:10:11.88ID:15Oa8T0J
>>438>>413ではてなマーク浮かべてたのか
2023/05/23(火) 19:12:08.19ID:AI1g8QaO
>>443
WPFでどうやってアセンブリ言語使うん?
わかってるなら教えて
2023/05/23(火) 19:42:24.84ID:15Oa8T0J
>>413をWPFからアセンブリ言語を使うって意味に解釈したの?
2023/05/23(火) 19:52:58.06ID:AI1g8QaO
>>445
どういう意味なん?
理解してるなら教えて
できてないなら話をそらして
447デフォルトの名無しさん
垢版 |
2023/05/23(火) 20:07:17.53ID:ExJFC8Fq
PIC、アセンブリで使ってたと書いたのに何故かMVVM と リンクした。
PICって知らんのだろうな。
2023/05/23(火) 20:17:24.67ID:15Oa8T0J
>>446
そもそも>444で話をそらしたのそっちやん
2023/05/23(火) 20:19:56.86ID:3Hegzcg2
話をそらしてるなw
2023/05/23(火) 20:20:44.24ID:3Hegzcg2
>>447
どのPICだよ?
2023/05/23(火) 20:22:46.39ID:AI1g8QaO
>>447
そもそもWPF知ってるか?
vueと勘違いしてない?
452デフォルトの名無しさん
垢版 |
2023/05/23(火) 20:49:15.76ID:ExJFC8Fq
組み込み系の話がでたのでPICのこと書いただけなのに。
vueってなんだ?
2023/05/23(火) 20:53:15.82ID:3Hegzcg2
突然脈絡なく組み込み系の話をWPFでするから頭おかしいと言われるんじゃね
2023/05/23(火) 20:54:03.77ID:3Hegzcg2
>>445
んで組み込みらしいけどアセンブリ言語じゃなきゃ何なんだ?
ん?
2023/05/23(火) 20:55:23.73ID:1GlwltgG
なんだろう
ID:AI1g8QaOの的外れな絡みっぷりは見てて不安になる
456デフォルトの名無しさん
垢版 |
2023/05/23(火) 21:23:37.19ID:ExJFC8Fq
「ここは日本語勉強スレッドになりました」
2023/05/23(火) 23:13:14.88ID:3Hegzcg2
>>455
それは気の毒に
で、WPFのスレでなんでアセンブリ言語の話を始めたの?
アスペか何か?
458デフォルトの名無しさん
垢版 |
2023/05/23(火) 23:36:47.69ID:nXOIckaw
組み込みとかPOSのあたりで使ってたいってるだけじゃないの
2023/05/24(水) 00:42:45.96ID:yPx62Xxf
言い訳がくどすぎて草
アセンブリ知らなかっただけだろ
460デフォルトの名無しさん
垢版 |
2023/05/24(水) 05:31:44.09ID:TU6R8wLC
MVVMはどうやって勉強したんだ、という質問に対して、
基板もやってたよ、という返答。
それで、ぼくはPIC(マイコンね)、アセンブリ(言語)で使ってたと返事したのが事の発端。

良く読めよ。
2023/05/24(水) 06:59:38.52ID:1cRzEp38
MVVMと基盤のどこに関係があるんだってとこから説明してもらっていい?w
ちゃんとした日本語書いてから言えよw
2023/05/24(水) 16:02:22.23ID:YLGPCuBd
https://flutterweb-wasm.web.app/#/
wasm gcでフルwasmでゲロ速い

正直flutter for web望みねぇなと思ってたがこれはもう
2023/05/24(水) 16:10:39.19ID:YLGPCuBd
flutter 3.10でもCanvasKitのサイズ2/3になったりしてたが、ロード時間
別次元やなどんなトリック?

単純なアプリであるが画面の切り替えもサクサクでモバイルブラウザでサクサクや

SEOの問題あるがこれならいける
2023/05/24(水) 16:35:34.61ID:iERIWOMP
コードビハインドの糞コードもCopilotに頼めばMVVMにしてくれる時代もすぐそこか
465デフォルトの名無しさん
垢版 |
2023/05/26(金) 06:39:48.94ID:ujY5h/oe
WinUIのNumberBoxのSpinButtonPlacementMode="Inline"で表示されるボタンが左右逆になっている
左がDownで右がUpではないから誤操作の原因になるUIだ
Sliderと一緒に並べたら違和感が半端ない
466デフォルトの名無しさん
垢版 |
2023/05/27(土) 18:02:44.82ID:bqvmQlCj
>>464
質問なんだがよくコードビハインドって言うけど実際は何だ?
マイクロソフトHPでは、
コードビハインドとは、XAML ページがマークアップ コンパイルされる際に、
マークアップ定義オブジェクトと結合されるコードを表すために使用される用語です。

とあるけどよくわからん。
467デフォルトの名無しさん
垢版 |
2023/05/28(日) 06:37:38.13ID:Ey5hy/ud
>>結合されるコードを表すために使用される用語
意味不明。

c# や bvのソースコードのことなんだろうか。
2023/05/28(日) 09:29:36.47ID:MoCGpZK6
コードビハインド is 用語

マークアップ定義オブジェクトと結合されるコードを表すために使用される用語



マークアップ定義オブジェクトと結合されるコードを表すための用語



コードビハインド is マークアップ定義オブジェクトと結合されるコード
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況