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

■ このスレッドは過去ログ倉庫に格納されています
2022/10/29(土) 11:34:34.12ID:OGteGRtm
WPF(Windows Presentation Foundation)について語るスレ。

前スレ
WPF(.NET, WinUI) GUIプログラミング Part29
http://mevius.5ch.net/test/read.cgi/tech/1649621434/

関連スレ
Windows 10 UWPアプリ開発Part 3
https://mevius.5ch.net/test/read.cgi/tech/1627556967/

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
2022/12/17(土) 12:51:27.79ID:LxPv4Jg4
>>427
重要性、結局の所何を目的にしてんの?
保守性というのであれば、コードとコードに分割したって何も問題無いよね、というのがこのあたりのMVU。
flutterでもサンプル以降はロジックと表示は分けてる。

>>428
おまえがそれしか知らないからでしょww
React系とかやったら一秒でわからん?
2022/12/17(土) 12:54:25.92ID:nDxZpCRv
>>317,318
でHTMLディスってるのに
>>420
で突然HTML持ち上げて矛盾したこと主張してて草
2022/12/17(土) 12:56:17.76ID:LxPv4Jg4
単に言い負かしたいだけなんでしょ。
2022/12/17(土) 13:08:28.43ID:x4b3fIZo
で、ターゲットは何ですか?
2022/12/17(土) 13:27:21.49ID:J9CPTir1
周りが分かりにくいって思ってる時点で保守性低いのに、なんでそれだけのことが分からないんだろうな
434.NET MAUI HighSchool
垢版 |
2022/12/17(土) 14:09:40.96ID:WFRGIGZB
>>429
そんでこのDart見て何がなんだか分かんのか?
それは一重に保守性が無いってことなんだよカス
435.NET MAUI HighSchool
垢版 |
2022/12/17(土) 14:12:07.69ID:WFRGIGZB
>>430
馬鹿だなぁ
俺はHTMLとCSSはバグばっかで体系的にもまとまってないクソ言語だが主にUIを描画するのに便利なHTML,CSSと機能であるJavaScriptの関係は素直に認めてんだよ
ホントはHTMLもJavaScriptもゴミ言語であることは変わりないんだがな
436.NET MAUI HighSchool
垢版 |
2022/12/17(土) 14:12:20.74ID:WFRGIGZB
>>433
だよな
2022/12/17(土) 14:20:55.84ID:ALkYq4Bb
>>434
わかるよ。
438.NET MAUI HighSchool
垢版 |
2022/12/17(土) 14:23:30.11ID:WFRGIGZB
>>437
サンクス
2022/12/17(土) 15:03:01.46ID:P2yWj1mA
>>435
またおまえバグとか言ってんのか
cssはバグってねえよ
単に使いこなせていないだけ
それをバグっていうのはおまえだけだ
440デフォルトの名無しさん
垢版 |
2022/12/17(土) 15:14:44.73ID:M4KsiDFx
DataGridの編集ってなかなか難しそうだな。
無理そうだw
2022/12/17(土) 16:06:42.63ID:B2zVNekM
便乗で
DataSetをdataGridViewのDataSourceに割り当てて
DataSetにDataTableを2個定義しています。
DataTableは2列定義して、特定の行の2列目をComboBoxにしたいけど出来ますか?
2022/12/17(土) 16:27:34.79ID:CiJibD/c
>>426
うーん、XAMLにはセマンティックの概念が無いから、同じノリでHTML書いたらdivだらけのクソになりそうじゃない?
セマンティックなHTMLに比べたら、綺麗に手書きされたものであっても実際読みにくいよXAML
2022/12/17(土) 16:42:45.32ID:0b0HT0Qx
XAMLはタダのオブジェクトの設計図だから
基本的な構造とデザインと挙動がごちゃ混ぜになってる

全体を見ると > みたいな形で階層が深く見通しが悪い
お世辞にも見やすいとは思わない
2022/12/17(土) 16:43:59.49ID:jMmHnzia
>>442
そんなこと無いんじゃないか…?真面目にコンポーネント作ってたけどな。
何でもGrid作るマンみたいなのが一番いかんのは確かにそうなんだけど。
2022/12/17(土) 17:24:03.07ID:CiJibD/c
>>444
いやXAMLではGridを積極的に使う方がレイアウトのための余計な階層が増えなくて好ましいでしょ
いずれにせよセマンティックHTMLに比べたら遠く及ばない低次元の話だけどね
2022/12/17(土) 17:31:35.63ID:jMmHnzia
>>445
そう言うところがセマンティックでなくしてる原因でしょ。
適切なコントロール作らないからでは?
2022/12/17(土) 17:36:08.18ID:NDyBwCeS
Windows App SDK 1.22出たけど無関心すぎる
地味に不具合修正しているから助かるんだけどね
2022/12/17(土) 17:37:33.08ID:0b0HT0Qx
Gridを使うしかないけどXAMLの見通しが異常に悪くなる

ヘッダ
記事もしくはアプリケーションの本体
フッタ
みたいな構造にしなくてもいいし出てくる順番もめちゃくちゃ
excel方眼紙と何も変わらない
2022/12/17(土) 17:41:23.28ID:jMmHnzia
ホントにそんな酷いXAML書いてるのみんな?ユーザーコントロール使わないの…?
そんなWindows 7の時代じゃないんだから…
2022/12/17(土) 17:54:35.91ID:AZCBrKeq
HTMLの場合は使用できるタグが固定なんでそのセマンティクスもほぼ規定されたものになるけど
XAMLは自由度が高いんで使う側の意識の高さ次第ってところはあるな。
2022/12/17(土) 17:58:18.70ID:0b0HT0Qx
xamlにユーザーコントロール入れたところでレイアウト要素を入れないといけない
デザインや振る舞いも入ってる
これがいけない
そこが本質なんだけど
452.NET MAUI HighSchool
垢版 |
2022/12/17(土) 17:58:43.36ID:WFRGIGZB
>>443
Dartより遥かにマシ
2022/12/17(土) 18:11:26.51ID:0b0HT0Qx
>>452
おいおいDartは言語だろ…

Vue.jsやreactみたいのは面白いと思う
描画は別にxml直の必要はない
debugは大変かもしれないけどw

Xamlはユーザーコントロールを書けたとしても
<window>
 <記事欄>
  <記事 />
  <記事 />
 </記事欄>
</windows >
みたいに記述してもレスポンシブに描画する簡単な仕組みがないのがガンだな
ストアアプリを書いてた頃は絶望したな
2022/12/17(土) 18:11:47.71ID:CiJibD/c
ユーザーコントロールを論理的なグルーピングとして多用するとそれはそれで見通し悪くなるし、データの依存関係なんかも無駄に複雑になるよね
コンポーネント化を気軽に多用するのはReactみたいな軽量な技術と洗練されたデータフローがあってこそ成り立つのよ
2022/12/17(土) 18:12:17.97ID:jMmHnzia
>>451
レイアウトとかも必要ならカスタムコントロールにレイアウトさせれば良いじゃん。
ベタベタに作ってしか無いんでは?

>>453
カスタムコントロールにあるよ。
2022/12/17(土) 18:14:11.33ID:jMmHnzia
>>454
そこまでReactなんかと違うことやってないけどなぁ。
457.NET MAUI HighSchool
垢版 |
2022/12/17(土) 18:16:07.74ID:WFRGIGZB
>>453
XAMLも言語だが?
458.NET MAUI HighSchool
垢版 |
2022/12/17(土) 18:17:18.25ID:WFRGIGZB
>>456
だよなぁ…
頭悪いよなこいつ
2022/12/17(土) 18:19:58.58ID:0b0HT0Qx
>>457
まともに考えてそういうレスしてんの?
それともネタ?
2022/12/17(土) 18:21:36.78ID:W2MqiuLT
ESP32などのハイポテンシャルチップでGUIやっている身からすると、Widgetとイベント機構設計する手間考えたらXAMLは出来過ぎた環境だと思うがな。
中の動作を知っていればだけど・・・
まぁ WPFもWinUIもMAUI for DeskTopとして一元化して欲しいとは思うこの頃。
2022/12/17(土) 18:22:54.19ID:0b0HT0Qx
>>455
WPF用にレスポンシブレイアウト可能なコントロールでたんか
良かったなそれは
2022/12/17(土) 18:27:09.25ID:jMmHnzia
>>461
そう言うの毎回Gridで作らなくても普通は作ってるでしょと言う話なんだが。
誰かに作ってもらうまで作らないの?
2022/12/17(土) 18:33:34.21ID:0b0HT0Qx
>>462
普通は作らないでしょw
2022/12/17(土) 18:39:46.83ID:jMmHnzia
>>463
どう考えても「基本的な構造とデザインと挙動」をごちゃ混ぜにしか作れないという感じに聞こえるんだが。

ググってみなよ。みんな作ってるよ。
2022/12/17(土) 18:41:35.96ID:0b0HT0Qx
学習時間もかかる
バッドノウハウだらけ
ボイラープレートだらけで実装に時間がかかる
どんどん間口が狭くなって開発者も減る

template studioみたいのが出てくるのはそういう理由
でも結局過去のストアアプリのテンプレートみたいにちょっといじって思い通りにならなかった場合
熟練者以外どこが悪いのかが判別できなくなる
2022/12/17(土) 18:42:28.03ID:0b0HT0Qx
>>464
イベントトリガーなどが入ってる時点でもう本質から離れてる
2022/12/17(土) 18:43:41.48ID:jMmHnzia
言いたいことがわからん。難しいって事?
2022/12/17(土) 18:44:05.73ID:0b0HT0Qx
セマンティックの意味を理解しないで延々レス続けられても困るんだけど
2022/12/17(土) 18:45:35.81ID:jMmHnzia
>>466
嫌ならイベントトリガーを内包してるコントロールを作るべきでは?
一カ所で済むし、そいつに閉じ込めたらそれより外側では綺麗なもんでしょ。
2022/12/17(土) 18:46:29.60ID:jMmHnzia
>>468
セマンティック(意味論的な構造)にしたいなら意味のあるコントロールを作ろうね、って話じゃん。
2022/12/17(土) 18:47:19.47ID:jMmHnzia
articleタグが無いなarticleタグつくるしか無いでしょ。
同じコントロールでも役割が違うならラッパー被せておくぐらいするでしょ。
2022/12/17(土) 18:48:14.60ID:0b0HT0Qx
>>469-470
UserConroilに押し込んでもそれは本質ではないと言ってるんだけど…
2022/12/17(土) 18:52:17.89ID:jMmHnzia
>>472
じゃあどういう事なの?
Behaviorsはそもそも基本ライブラリじゃないし。
コードビハインドでもできるよそれ。
474.NET MAUI HighSchool
垢版 |
2022/12/17(土) 18:55:56.86ID:WFRGIGZB
>>459
は?
マークアップ言語だろ
2022/12/17(土) 19:00:57.26ID:0b0HT0Qx
最初に書いたレスに内容は戻るけど
Xamlはタダのオブジェクトの設計図で基本的な構造と振る舞いとデザインが全部ごちゃになっている

挙動にしてもデザインにしてもxmlで記述すると無駄な記述が多くなるだけで見通しが悪い
styleのsetterとか本当に無駄
学習の時間もかかる

UserControlやdicに押し込んでも消えるわけじゃない
2022/12/17(土) 19:46:31.73ID:AwfJndFt
android studioでandroidアプリやってるけどConstraintLayoutのような相対配置とかできるの?
色んな端末相手でほぼ相似的なデザインで便利なんだが、Winアプリも同じようにできれば、またそっちもやりたいな。
2022/12/17(土) 20:08:32.03ID:nDxZpCRv
結局、覚える事が多いのがダルいんだよ
xamlならプログラミング言語の他にxamlという一種のミニ言語を覚えるはめになる

xamlでしゅっと書くために余計な事を覚えるという他が犠牲になってる

UserControlにしても、カプセル化できるけど、プロパティ追加するだけでも
DependencyProperty.registerPropertyで登録するおまじないから...

表示切り替えるだけどもflutterならお馴染みにifやswitchを使って
switch (viewModel.value)
{
 case 0: return Widget1()
 case 1: return Widget2()
}
対してXMLに制御構造ないからxamlは例えばDataTriggerを使って
<DataTrigger Binding="" Value=hoge>
<Setter Property="" Value="" >
これ笑
478.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:11:13.12ID:WFRGIGZB
>>477
それお前が下手くそなだけだろw
479.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:12:54.68ID:WFRGIGZB
XAMLはただのビューだってことわかってないやつ多すぎじゃね?
こんなやつがUIとロジック別れてるとか言ってるの疑わしいんだが
2022/12/17(土) 20:17:40.13ID:nDxZpCRv
お馴染みの値変換するだけでも、例えば値によって表示切り替えるだけでも
flutterなら
if (viewModel.boolValue)
 return Widget()
xamlなら例えばお馴染みのまず、IValueConverter作って、
リソースにBoolToVisibilityコンバーター登録して
BindingにStatic拡張を使ってキーをしてそのConverterを参照


もちろん、この場合はViewModelでVisiblity型参照という邪道な事してもいいが
481.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:21:46.66ID:WFRGIGZB
>>480
いや普通にViewModelで値変換するだろ
頭悪そう
ビューとロジック全然分かれてねぇやん
482.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:22:56.96ID:WFRGIGZB
こういう頭悪いやつってXAMLとC#やってる人の中で生まれないと思ってるんだけどどうして出てくるんだろ?
2022/12/17(土) 20:24:16.37ID:nDxZpCRv
結局、Xamlでしゅっとするために余計なおまじないなどを覚えることだらけという

それに対してflutterはビジネスロジックで使うプログラミング言語の知識でほぼUIも書ける

xamlはビジネスロジックで使うプログラミング言語の他にxamlという一種のミニ言語を覚えるはめになる
だりーーーーーーーーーーー
484.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:24:46.06ID:WFRGIGZB
オブザーバブルプロパティとか使ったことないんかなこいつ?
485.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:25:27.23ID:WFRGIGZB
>>483
DartでUI書くほうがダリィわw
2022/12/17(土) 20:26:08.34ID:nDxZpCRv
xamlではビジネスロジックを書く通常のプログラミング言語の他にUIを書くための一種のミニ言語を覚える必要がある

だりーーーーーーーー
2022/12/17(土) 20:33:00.57ID:nDxZpCRv
今時、一つの言語、一つフレームワークしか使えない技術者なんて役立たずだし複数使えるの当たり前なんだわww
だから、覚える事は少ないに越したことねぇんだわ
それなのにxamlというUI用マークアップ言語の覚えるはめになってww

初心者には学習コスト高いのはもちろん、一度覚えた俺も数年振りにxaml触ると記憶が飛んで
だりーーーーーーーーーwww
488.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:33:21.83ID:WFRGIGZB
>>486
HTML知らないってやばくね?
489.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:34:31.46ID:WFRGIGZB
>>487
いやC#覚えればぜんぶできんだからXAMLも覚えろよ
てかXAMLとかHTMLより遥かに楽だろ
CSSフレームワークとか言うのもねぇし
490.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:35:23.56ID:WFRGIGZB
このレベルの低能がXAML貶してDart上げしてるのウケるんだがwww
2022/12/17(土) 20:37:24.84ID:NDyBwCeS
>>480
UWP WinUI3だと、関数ってのが使えるからWPFとは全然違って楽ちんだよ
https://learn.microsoft.com/ja-jp/windows/uwp/data-binding/function-bindings
2022/12/17(土) 20:39:54.87ID:nDxZpCRv
こちとらc,c++/win32から始まってc#/wpf,uwpやjava,kotlinでandroid開発typescriptやらflutterそして今はcomposeで作ってるが
oracleのデータベースのエキスパートとしてもやってきたし
もう頭パンクしそうなんだわww

覚える事減らしてくれない?www
2022/12/17(土) 20:42:14.24ID:nDxZpCRv
お前と違ってc#+xaml系しか使えななくて空き記憶容量が多そうなゴミとは違うんだよww
494.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:42:29.53ID:WFRGIGZB
>>492
死ねばいいと思うよ
495.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:43:59.26ID:WFRGIGZB
>>493
Flutterとか言うクソフレームワークの記憶消せばいいじゃん?
C#とXAMLなんてこれから先ずっと使ってくのに一時しか利用価値のないFlutterを覚えとく意味あんの?
2022/12/17(土) 20:44:08.40ID:AZCBrKeq
>>477
xmlの仕様は大きいからゼロ知識からいきなり全部やるには大変だろうなとは思う。
前提としてxmlの知識があればそう大したことhないんだが。
497.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:44:43.85ID:WFRGIGZB
俺がその中で取捨選択するならまずFlutterとKotlinの記憶抹消するわ
498.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:47:09.70ID:WFRGIGZB
取捨選択が間違ってるから余計に脳味噌圧迫してんだよね
もうすこし効率よく勉強したら?
DartがWebバックエンドにもデスクトップにもVR,MRにも使い回せんの???
俺なら真っ先に切るわ
499.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:50:52.20ID:WFRGIGZB
俺なんか普通にこの6ヶ月程度でC#とXAMLだけでデスクトップアプリもウェブアプリもモバイルアプリもウェブバックエンドも全て使えるマルチスタックエンジニアになってるわ
DartキチガイはFirebase使うだけでバックエンドの技術すらないゴミカスども
2022/12/17(土) 20:54:16.85ID:ZmpqA/oq
まあまあ、お互いどんなアプリやったのか晒してみたら?
501.NET MAUI HighSchool
垢版 |
2022/12/17(土) 20:59:47.27ID:WFRGIGZB
>>500
はい
http://133.125.56.254:256/
2022/12/17(土) 21:01:15.17ID:NDyBwCeS
UWPーWinUI3でxamlも結構進化しているから、目を通したほうが良いと思うよ
wpfの知識で止まっている人だらけだ
2022/12/17(土) 21:06:32.30ID:jMmHnzia
どっちも便利だぞ。適材適所だろ。
>>501
ひどすぎるだろ。GitHub Pagesかなんかでやれよ。
504.NET MAUI HighSchool
垢版 |
2022/12/17(土) 21:08:32.96ID:WFRGIGZB
>>503
GitHubはSQLServer使えないからね
ASP.NETのServerをサクラサーバー(IP133.125.56.254のポート番号256)に入れた
2022/12/17(土) 21:10:38.48ID:ZmpqA/oq
へえ、インストールしなくてもいいんだ。
Google playだけでやってきたので勉強になるわ。
2022/12/17(土) 21:21:09.63ID:jMmHnzia
>>504
何にSQLサーバ使ってるのこれ。
2022/12/17(土) 22:10:37.43ID:cDz4DDXL
xamlは良くも悪くも解が多すぎる
むき出し過ぎてフレームワーク一歩手前のフレームワーク感が凄くて、
この機能ぐらいヘルパでもライブラリでもなんかの形で提供しといてくださいよ…って思うことが多々
508.NET MAUI HighSchool
垢版 |
2022/12/17(土) 22:13:49.71ID:WFRGIGZB
>>506
記事の保存
509.NET MAUI HighSchool
垢版 |
2022/12/17(土) 22:14:00.29ID:WFRGIGZB
>>505
これBlazorだよ
2022/12/17(土) 22:59:23.87ID:0b0HT0Qx
本質的なことが理解できないから無駄な記述を書かされても平気なんだろうが
普通の人は嫌な気分になってやめるだろ

今のままじゃxamlは利用しにくい
どんどん開発者も減るだろう
2022/12/17(土) 23:38:30.04ID:RqwtvM7c
そう考えるとWinFormsって程よくわかりやすかったよな
WPF=MVVMって思想が広間ならければもっと使われてたと思うわ
2022/12/18(日) 00:18:12.76ID:2sFwaZx0
WinFormsは確かに楽なんだけど、ちょっとこりだしてオーナードローに手を出すと
泥沼にハマったんだよな
だからWPFが救世主に思えたわ
2022/12/18(日) 01:34:05.26ID:unD+40ms
>>508
jsonか何かで持っときなよ。
514デフォルトの名無しさん
垢版 |
2022/12/18(日) 04:50:01.87ID:Wdso+RO7
>>507
その部分はコミュニティが担ってほしいって感じなんだろうなあ
元の部分が細かくやれたり選択の幅広くなってるのはいいことなんじゃないか
515.NET MAUI HighSchool
垢版 |
2022/12/18(日) 07:16:40.91ID:kMWioX0P
>>513
動的に追加するんだぞ?
2022/12/18(日) 09:23:39.32ID:unD+40ms
>>515
何を?投稿?
それだけどっかに貯めて、ビルドしてjsonだけ配信したら良いじゃん。
DBエンジンだけならいくつかあるし、それこそfirebaseなんかもあるでしょ。c#からでも使えるよ。
517.NET MAUI HighSchool
垢版 |
2022/12/18(日) 10:00:50.09ID:kMWioX0P
>>516
ファイアベースとか使うなら自分でSQLServer作ったほうがマシなんですよねぇ…
結局やってること変わらんしw
2022/12/18(日) 11:37:06.59ID:tRFaQ7ls
>>517
どこがマシなの?
現状の無残さを少し解消してから言ったらどう?
519デフォルトの名無しさん
垢版 |
2022/12/18(日) 13:36:53.11ID:kMWioX0P
>>518
無残さ?
ファイアベース使ったらどこがよくなんの?
2022/12/18(日) 13:48:58.72ID:unD+40ms
>>519
独自ドメインの取り方がわかんないと言うのを差し置いても、たったこれだけの機能を静的にホスティングせずに、しかもSQL Serverと同じホストに相乗りさせてるところがひどい。
しかもoriginが露出してるから色々まずいわ。

ポートがガバガバに開いてるぞ。閉めとけよ。
他の人の忠告を自分が優秀だと思い込んでけなす前に、もう少しちゃんとやれよ。
2022/12/18(日) 13:49:15.79ID:unD+40ms
>>519
完全に静的にやれる。
522デフォルトの名無しさん
垢版 |
2022/12/18(日) 13:56:49.92ID:kMWioX0P
>>520
ポートガバガバというか開けてんだがw
Azureでやってたけど糞金かかってしょうがないからサーバーたててやってる
523デフォルトの名無しさん
垢版 |
2022/12/18(日) 13:58:04.21ID:kMWioX0P
>>521
ファイアベースとかゴミだから使わなくていいや
どうせSQL投げないといけないしその時C#で書けないしSQL直書きだろ?
ゴミじゃん
2022/12/18(日) 14:05:50.66ID:unD+40ms
>>522
いや開けるなよ。RDPとMSSQLまで開いてるとか正気の沙汰じゃないぞ。
MSSQLに関してはlocalだけlistenすれば良いじゃねえか。

>>523
おまえの知識がゴミじゃん。そもそもSQLじゃないよ。
2022/12/18(日) 14:07:15.87ID:iKVYvy3c
面白いから何も教えず様子見したいぞw
2022/12/18(日) 14:07:37.29ID:unD+40ms
俺がスキャンした訳じゃ無くてすでにshodanとかに載ってたからな。ホントに気をつけろよ。
2022/12/18(日) 14:09:34.14ID:unD+40ms
金かかるの不正アクセスされてたのでは疑惑。
2022/12/18(日) 14:16:40.29ID:KVP7/Uup
>>514
多様性は必要だとは思うけどまずMSからベストプラクティスの一本の道を提供してほしいと思うんだよね
bindingもどこでもいつでもいくらでもやれるけどじゃあどこでどんな形で記述するのが適切な(と考えてる)のかってさ
wpf、winuiで微妙に変わってたりするところとかなんか思想に合わなかったんだろうなとは思うけど方向性が見えてこない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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