WPF(.NET4.x, .NET Core) GUIプログラミング Part24

■ このスレッドは過去ログ倉庫に格納されています
2019/12/09(月) 12:36:14.49ID:9LsUsH++p
Windows Presentation Frameworkについて語るスレ。

前スレ
WPF(.NET4.x, .NET Core) GUIプログラミング Part23
https://mevius.5ch.net/test/read.cgi/tech/1557960752/

関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2020/09/13(日) 20:33:02.69ID:z7jXxub/0
>>451
ノーコードで作ったものはプログラムというのか?は置いておいて

顧客自身が使って小物を作る程度の需要は満たすかもしれない。
複雑にデータが散在するようなシステムや、データへの意味が独自で手が込んだ物は無理かな。
シンプルかつサービス同士を糊でつなぐ程度のモノならあるいは。

UIやデザインに五月蠅い顧客の需要も満たせるのか微妙と思うが皆さんどう思う?
2020/09/13(日) 22:06:53.80ID:D1IdQ9l60
MSがノーコードノープログラムだと!!

WPFオワコンじゃん。
454デフォルトの名無しさん (ワッチョイ b501-+uOX)
垢版 |
2020/09/13(日) 23:37:53.72ID:e9EK7dt70
WPFerはパラダイムシフトを乗り切る力があるから問題ない
より新しいものに乗り換え、習得できる力がある
WinFormserが心配だ
彼らにはその力がない

ノーコードの進化は「作業の量や質がノーコードとは言えなくなるところまで」に限ることを考えて開発されているはずだ
その範囲を超えるとノーコードをノーコードとして使っていた利用者が離れていくフェーズが始まってしまうからだ
2020/09/13(日) 23:49:56.38ID:D1IdQ9l60
そんなに余力あるならプログラマなんか辞めて医者や弁護士になったほうがいいよ。
法で利権が守られてるからね。一種やソフ開なんていうゴミ資格とは違う。経産省大臣のハンコに価値はない。
2020/09/14(月) 00:06:33.81ID:PY4I2gwB0
>>455
いきなり医者、弁護士、情報処理試験という無関係なこと話はじめるとか
知能や精神にエラーが発生してる証拠なので病院でデバッグしてもらった方がいいぞ
2020/09/14(月) 00:15:00.38ID:lDodbDrd0
なにやら触れてはいけないものに触れたようだ
458デフォルトの名無しさん (エムゾネ FF0a-e6VR)
垢版 |
2020/09/14(月) 10:40:34.21ID:gMM3Z1jiF
>>62
2020/09/15(火) 08:48:00.45ID:fvnMiQowd
>>452
顧客自身が作る小物はVBAマクロと同じ運命を辿る
それは開発者が自分達の為に作るツールも同じ
2020/09/19(土) 21:37:03.67ID:dTdYqfkZ0
たいして機能つかわないし
なんだかんだlivetに戻った・・・
2020/09/20(日) 22:02:21.67ID:PdjshYFp0
>>460
livetに先はないよ
今も片手間でメンテを続けてくれてるだけだし、開発した本人から完全に移譲されてるわけでもないし

多機能すぎるけどPrismでやったほうが自分のスキルにもなっていいと思う
462デフォルトの名無しさん (ワッチョイ 5701-qc2B)
垢版 |
2020/09/22(火) 17:25:26.61ID:MUes9yQZ0
求人みると意外とWPF多いんだよな。
デザインとロジックに別けて開発できる! ってアンタどんだけの規模の開発だよ。
463デフォルトの名無しさん (ワッチョイ 5701-qc2B)
垢版 |
2020/09/22(火) 17:29:48.65ID:MUes9yQZ0
>>126
sockaddr_in構造体なんて同じだよな。
2020/09/22(火) 17:30:52.89ID:Iq4H0kt00
ボク、UIデザイナーなんでロジックは書けません。
2020/09/22(火) 17:49:48.34ID:EwzeVKsQ0
>>462
意外か?
ウチの周りじゃWindowsの新規案件はほとんどWPFでたまにC++でMFCは混ざる感じだが。
いまだにFormsでやっているところって本当にそんなに多いのかなぁ。
2020/09/22(火) 17:56:11.95ID:Iq4H0kt00
WPFのビッグウェーブきたか!!
2020/09/22(火) 18:02:32.18ID:cU35i3FIM
>>465
winformのがお手軽だからなあ
高dpiも騙しながら何とかなる
468デフォルトの名無しさん (ワッチョイ 5701-qc2B)
垢版 |
2020/09/22(火) 18:04:49.79ID:MUes9yQZ0
特に内輪用だったらwinformで十分だろ。
2020/09/22(火) 18:55:21.55ID:EwzeVKsQ0
内輪でお手軽にやるためにわざわざ求人することも少ないんじゃないかと思うが。
2020/09/22(火) 18:56:26.53ID:Iq4H0kt00
つまりデスマーチ…
471デフォルトの名無しさん (ワッチョイ d75f-qc2B)
垢版 |
2020/09/22(火) 19:40:56.69ID:H4U+QONT0
WinFormsは論外としてWin7対応ならWPF一択だからな
472デフォルトの名無しさん (ワッチョイ 5701-qc2B)
垢版 |
2020/09/22(火) 20:16:31.87ID:MUes9yQZ0
>>471
WIN7でもwinform使えるし
今更WPF勉強する位ならVC++6.0 MFC使ったほうがマシ。
W10でもVS6.0使えるんだよな。
473デフォルトの名無しさん (ワッチョイ d75f-qc2B)
垢版 |
2020/09/22(火) 20:22:13.66ID:H4U+QONT0
そこまで勉強したくないやつがなんでプログラミングやってんのか不思議
474デフォルトの名無しさん (ワッチョイ 5701-qc2B)
垢版 |
2020/09/22(火) 20:22:58.56ID:MUes9yQZ0
Z80のハンドアセンブルの頃からテキトーにやってきたよ。
2020/09/22(火) 20:38:15.13ID:2ES7fWER0
>>473
苦労して覚えたからもう二度と同じ苦労をしたくないってPGが世の中には腐るほど居る
2020/09/22(火) 20:39:07.24ID:TZbr+jJ50
WPFを体系的に学べるマトモな日本語の本がない。
477デフォルトの名無しさん (ワッチョイ 5701-qc2B)
垢版 |
2020/09/22(火) 20:39:56.22ID:MUes9yQZ0
>>476
確かに。どうやってみんな勉強したんだ。
478デフォルトの名無しさん (ワッチョイ 5701-5MQP)
垢版 |
2020/09/22(火) 20:43:40.46ID:OeqAWM6T0
かずき
479デフォルトの名無しさん (ワッチョイ d75f-qc2B)
垢版 |
2020/09/22(火) 20:46:42.81ID:H4U+QONT0
それ10年前の話じゃないの
今は情報が出揃っていてやる気だけあれば普通に習得できる
480デフォルトの名無しさん (ワッチョイ 5701-qc2B)
垢版 |
2020/09/22(火) 20:55:29.30ID:MUes9yQZ0
ヤフーオークションで WPFの本検索したが三件だったぞww
2020/09/22(火) 20:58:34.57ID:bhDrmv5D0
顧客にとって関心事はライフサイクルコストだから
それが一番安上がりになるの方が正義
2020/09/22(火) 21:05:31.07ID:rd5bPy3Z0
PCの性能が進化した今でもWinFormのアプリはやたら軽い
wpfが重いのはprismのせいなんだろうか
483デフォルトの名無しさん (ワッチョイ d75f-qc2B)
垢版 |
2020/09/22(火) 21:09:15.16ID:H4U+QONT0
本とかいらねーだろ
わからないことを検索することもできんのかよ
2020/09/22(火) 22:05:05.60ID:Iq4H0kt00
ID:H4U+QONT0  リアルで仕事でこんなこというPGいたら笑うけどw
2020/09/22(火) 22:45:43.46ID:S3c4U8yb0
リアルだったらお前は死んでるぞ
2020/09/22(火) 22:54:06.49ID:Iq4H0kt00
>>485
通報した。
2020/09/22(火) 22:57:46.92ID:R52LfaJF0
WPF勉強しときたいけどおすすめのサイトか本ある?
2020/09/22(火) 23:05:17.28ID:GCixYKXo0
>>482
MVVMがレイトバインディングオンリーなのもね…
2020/09/23(水) 00:13:21.92ID:d+eus6090
今は機械翻訳ばかりでMSの日本語ドキュメントがゴミのようだ。
かといってMSの公式解説書も酷い訳のものがある。英語で読むしかないね。
2020/09/23(水) 00:58:20.94ID:RwrtWQFd0
https://www.wpf-tutorial.com/
ここが英語だけど高1くらいの英語力の俺でもそんな苦労せずに読めたからおすすめ
2020/09/23(水) 01:06:07.80ID:GhFg2WnD0
>>489
最近の技術系の翻訳本ってほぼ機械翻訳かけて手直ししてるだけっぽいからなあ

>>490
見てみる
2020/09/23(水) 06:48:16.09ID:a0wAVJWk0
酷い翻訳も慣れると逆算して読めるようになるから不思議だ
いや、読みやすいのが一番だけどね
2020/09/23(水) 08:30:21.61ID:Hsz3JCQvM
>>471
死んだOSの対応って何なん?
2020/09/23(水) 08:35:22.43ID:Hsz3JCQvM
>>472
今どきvs6って拷問だな
2020/09/23(水) 08:37:33.83ID:Hsz3JCQvM
>>483
体系的に短時間で学ぶには今でも本が便利だよ
496デフォルトの名無しさん (ワッチョイ e37c-7JTP)
垢版 |
2020/09/23(水) 10:31:48.86ID:kf7t1N4+0
>>490
日本語が Localized versions の上位には上がってないので
more languages ...
で出たが
Localization
https://www.wpf-tutorial.com/Localization/
日本語対応遅れとるな
497デフォルトの名無しさん (ワッチョイ e37c-0ian)
垢版 |
2020/09/23(水) 10:43:36.75ID:kf7t1N4+0
>>492
エラーを取得するには関数を使います
2020/09/23(水) 10:47:22.57ID:R3wz9TIW0
>>487
okazukiさんのブログが一番いい
prismとかReactiveproperty関連はとりあえず読み飛ばす前提で
2020/09/23(水) 11:50:21.21ID:2MH3im7L0
prismとか意味なく使うから
コードがめちゃくちゃになる。
2020/09/23(水) 11:59:46.14ID:9C05kspb0
>>494
ExcelがVBAというレガシーチャンピオンを抱えてるからそのうちスプレッドシートにシェア奪われるんだろうな
501デフォルトの名無しさん (ワッチョイ 2701-8GNv)
垢版 |
2020/09/23(水) 20:26:34.11ID:bxjjKz3I0
コントロールは今まで通り、貼り付けで配置できるん?
2020/09/23(水) 20:53:57.14ID:L4V/SK950
>>497
たぶんWinApiのFormatMessageのことだな(適当)
2020/09/23(水) 21:07:06.41ID:TDgfvANh0
>>501
デザイナはあるけれど、WinFormsのポトペタをイメージしているのならコレジャナイってなる
2020/09/24(木) 01:02:07.98ID:r0U1/5Zg0
>>501
ぽとぺたWindowにコード全部かいてもいいぞ!
好きにしろ
2020/09/24(木) 04:13:59.25ID:SazTPdWp0
https://medium.com/flutter/announcing-flutter-windows-alpha-33982cd0f433
あらら
506デフォルトの名無しさん (ワッチョイ 175f-8GNv)
垢版 |
2020/09/24(木) 04:43:28.13ID:YxwlyIOc0
あらら、またスマホベースで残念だわ
デスクトップベースのWPFが生き残り続けてしまうことに・・・
2020/09/24(木) 05:51:13.12ID:Tu4V2/EEM
最近のwebページもスマホベースのが多くて、pcで開くと横にドーンと広いんだよね(´・ω・`)
2020/09/24(木) 07:21:23.47ID:oGOHDREdM
貴方には信心が足りないわ
2020/09/24(木) 11:27:21.75ID:Al9hzlNm0
コテコテのコモンコントロールはもう時代遅れか
2020/09/24(木) 11:54:47.37ID:SazTPdWp0
スマホ用のアプリをパソコンで開くと無駄なスペースとか多すぎでくそなのは事実だが、とりあえずタブレットというか2in1用のタッチベースのアプリが増えないことには

一般向けのアプリのほとんどが参照系でタッチベースで十分なわけだし

で、マウスベースの生産系アプリ作る場合はどうするんでしょう...マイクロソフトさん...

winuiもコンパクトモードがあるがすげえ中途半端だし...
2020/09/24(木) 11:56:36.57ID:SazTPdWp0
https://www.microsoft.com/ja-jp/p/flutter-gallery/9pdwctdfc7qq

microsoft storeにflutter galaryアプリがきてるらしい
512デフォルトの名無しさん (ワッチョイ 175f-8GNv)
垢版 |
2020/09/24(木) 19:12:16.23ID:YxwlyIOc0
MSがWindows 1からデスクトップだけを考えてアプリ開発をしてきた最終的回答がWPF
おそらくこの分野でライバル出てくるとしたらWindows 11が出るような変化の時だろうな
513デフォルトの名無しさん (ワッチョイ 2701-8GNv)
垢版 |
2020/09/24(木) 19:23:46.15ID:bZ1sVv660
>>507
そもそもwww(html)なんてUNIXが発祥なのに
変だろ。
納得できんわ。
514デフォルトの名無しさん (ワッチョイ 2701-8GNv)
垢版 |
2020/09/24(木) 19:57:08.14ID:bZ1sVv660
>>504
コード書くなら「Visual」Studioじゃないよな。
WIN32APIで書くのと変わらん。
2020/09/24(木) 20:04:57.62ID:khkTd8DV0
>>512
UWP推進のために敢えて放置されてたのか、痒い所に手が届かない部分が所々合ってもどかしい
せめて事前バインディングはマージしてくれ
2020/09/24(木) 20:28:49.17ID:anZxJGRt0
>UWP推進のために敢えて放置されてたのか

これだよなぁ。ペゾルト本もWPFスキップさせられたし。
517デフォルトの名無しさん (ワッチョイ 2701-8GNv)
垢版 |
2020/09/24(木) 20:34:02.96ID:bZ1sVv660
画面デザインとコードで分業できる、というけど実際そうしてるんか?
結局全部自分でやってね?
2020/09/24(木) 20:56:33.67ID:d9Awt+YW0
>>513
cssを上手く使ってpcでもスマホでもちゃんと表示出来るのもあるんだけどねえ。
最近はスマホだけに最適化されてるのが増えてきた。
世も末だよ。
519デフォルトの名無しさん (ワッチョイ 2701-8GNv)
垢版 |
2020/09/24(木) 21:19:02.45ID:bZ1sVv660
>>518
特に大学生はスマホオンリーで、PCなんて不要
という考えが大半なんだよな。
そりゃ見るだけならいいけどよ...
2020/09/24(木) 22:04:34.04ID:LFWdqcpHM
>>519
キーボードよりスマホのフリック入力が速いと。
オレなんてミスタッチしまくりさ。
2020/09/25(金) 21:40:27.80ID:c1QgCFu70
>>515
事前バインドは.net5とWinUI3でデスクトップに降りてくるようだからな
ついでにイベントのバインドも出来るからビヘイビアの大半が要らなくなるのも良い
2020/09/25(金) 22:20:21.51ID:iQJ3d1Xe0
大幅変更のビッグウェーブくるね。目指すはwinformの開発効率。
2020/09/26(土) 12:37:46.17ID:3hVx86Rj0
事前バインディングは効果を体感できない
定期
524デフォルトの名無しさん (ワッチョイ 2701-ozis)
垢版 |
2020/09/26(土) 18:07:46.78ID:AmGNamxa0
今日からWPF始めたんだが x:Name で適当に名前つければ簡単にコントロール
利用できる事を知ったんだがだけどそれでいいのん?
データバインドなんちゃら って必要なの。
525デフォルトの名無しさん (ワッチョイ 2701-F8K1)
垢版 |
2020/09/26(土) 18:14:00.51ID:uvZwMpem0
個人のプログラムなんて動きゃいいんだよ
2020/09/26(土) 18:14:22.46ID:U/HQ8OHN0
>>523
実行前にエラーが分かるのは大きいだろ

>>524
バインディングは必須ではないからそれでも良いよ
527デフォルトの名無しさん (ワッチョイ 2701-ozis)
垢版 |
2020/09/26(土) 18:17:13.29ID:AmGNamxa0
>>526
なるほど。
この場合は自動実装プロパティなど不要でスッキリですな。
一応、習得しとこうかなとは思ってる。
2020/09/26(土) 19:48:04.87ID:U+G6yEte0
>>524
それでもできるしバインドしてやることもできる
バインドの方がハードル高め
個人的には両方できてしまうことがわかりにくくしてる要因だと思う
529デフォルトの名無しさん (ワッチョイ 2701-ozis)
垢版 |
2020/09/26(土) 21:26:12.10ID:AmGNamxa0
なるほど。

質問ばかりで申し訳ないんだが、
コントロール一つごとに
・自動実装プロパティ
・ビューモデルのクラス生成
・データコンテキストの設定
が必要であってます?
2020/09/26(土) 21:57:03.85ID:yhMCpvCJ0
必要ではない
複雑なことやらないならWindowクラスのViewModelに各コントロールのバインディングソースプロパティを持たせればいい
なお自動実装である必要はないよ
というかプロパティ変更をINotifyPropertyChangedで通知したいなら自動実装ではダメ
2020/09/27(日) 00:02:47.65ID:bYiRY3PLM
Mode=OneWayToSource以外ならgetterが必要
Mode=OneWayToSourceかTwoWayならsetterが必要

VM→Vで変更通知するにはINotifyPropertyChanged.PropertyChangedイベントを発生させる

で、getterはbacking fieldを返し、setterはbacking fieldに代入しイベント発生、というのが定石
定石過ぎてReactivePropertyとかPrismのBindingBase.SetPropertyを使うと楽できる
2020/09/27(日) 01:05:57.42ID:zhyG30X30
(楽か?)
533デフォルトの名無しさん (ワッチョイ 2701-ozis)
垢版 |
2020/09/27(日) 10:51:02.21ID:BlHd4Scl0
だめだ。バインドの有効利用方法がわからん。。
面倒くさい 煩雑 しか思えん。
2020/09/27(日) 11:05:21.04ID:+zlhhpvN0
バインド超楽だけど
2020/09/27(日) 11:16:28.74ID:lEpS58To0
最初はバインド面倒にかんじて
コントロールに名前つけてアクセスしたらいいじゃんって思うだよな
536デフォルトの名無しさん (ワッチョイ 6712-k2iJ)
垢版 |
2020/09/27(日) 11:59:55.26ID:fEMpkeyM0
>>535
それをやめさせるには、
コントロールに直接触るのはスレッド安全じゃないってことを解らせないとダメなんだよな...
2020/09/27(日) 13:29:01.55ID:AVJFrAga0
あとVM以下層のテスト書かせるのもね
2020/09/27(日) 14:10:50.15ID:3HypLccl0
MVVMバインドは確かに技術的に古く、将来はMVUに移ったほうが
記述量が減ったり、堅牢になると思う

ボタンを押したときのためにCommandを用意して呼び出すなど無駄な作業でしかない
クリックイベントでいい

VMとVを疎結合にするのはIDEの支援が限定されて生産性が落ちる
参照先にジャンプしたときにインターフェースで実装がわかりませんでは
時間がいくらあっても足りない

VMとVを別のフォルダーで管理するのも扱いづらい
最近のUIはコンポーネント化しやすくすることが必須
別のプロジェクトでも流用するとき、1つのファイルを移動させればよい状態が好ましい
いちいちVMとVのファイルを移動など面倒だ

とは言えMVUは.NET6まで待たなければならない
それまで自分はPropertyChanged.Fodyで変更通知してる。
記述量が少なく、属性主体なので影響も少ない。
ModelはJsonシリアライザーに優しくないと使い物にならない
539デフォルトの名無しさん (ワッチョイ 2701-ozis)
垢版 |
2020/09/27(日) 14:16:53.81ID:BlHd4Scl0
ヤバイ。
意味が分からん。最近難しいな!
540デフォルトの名無しさん (ワッチョイ 2701-ozis)
垢版 |
2020/09/27(日) 15:37:28.93ID:BlHd4Scl0
>>226
未だにSXGAなんてザラ。
WUXGAすらない。
2020/09/27(日) 16:11:20.22ID:gGo0R8Ul0
>>538
そうとは思わない。

特に「VMとVを疎結合に...」以降の自論は
なにか勝手な思い込みではないかと思う。
542デフォルトの名無しさん (ワッチョイ 175f-ozis)
垢版 |
2020/09/27(日) 18:05:15.62ID:eIKg6nYv0
MVVMでコマンドもコンバータもバリデーションルールもファイルコピーして使いまわしてるが
prismとかはその辺ぶっ潰してるからやりにくくなってるだけじゃない?
やっぱマニュアルのMVVMが最強やな
2020/09/27(日) 19:14:42.82ID:0F2CG6otd
>>529
リストビューみたいな列挙にだけdatatemplateとバインディング使って、ただのボタンとかは全部コードビハインド+非MVVMでもいいんじゃないかと思ってる
個人とかうちわ向けのツールなら
2020/09/27(日) 19:21:26.72ID:LOFXzk7UM
>>542
意味解らずprismとか使うとコード量がふくれて
馬鹿みたいに面倒になるね。

意味解ってないから
MVVMの実装はこうしなければいけないと
思い込んでる。
2020/09/27(日) 19:29:24.63ID:LOFXzk7UM
>>543
理解出来てるならバインディングは一切使わなくても大丈夫だね。
最速を求めるなら使うとむしろ遅くなる。

有名どころのコントロールのソース見ても
内部はあんまりMVVMしていない。
2020/09/27(日) 19:31:16.40ID:co99WLAO0
遅くない!!っ言い張ってた子の気持ちも考えてね!!
2020/09/27(日) 19:35:30.30ID:0F2CG6otd
>>545
まあ実際自分でやる分にはちゃんと書くようにしてるけど、winformsからwpfになって個人、内輪で便利になったのってそこくらいしかないというか
データテンプレートで綺麗でリッチな表示できるよねーっていう

winformsでもデータコンテキストはあったけど自分の周りのはforでまわしてリストにaddするような人達ばかりだったし
2020/09/27(日) 20:09:31.44ID:4TLQ9mS+0
MVVMだけならReactivePropertyが一番楽ちんだな
PrismはUnityでDIしたりViewModelLocaterの機能や
EventAggregatorなどで手放せない
あと、EF使う所はBindingBaseでMVVMするな

BindingはListBoxの要素では必須だから、そこから勉強始めたら覚えやすいかも
2020/09/27(日) 20:12:24.73ID:LOFXzk7UM
>>546
たとえば1000万行のデータグリッドが必要なら、内製するし
バインディングとか使わない。
仮想化とか必須の領域だし、
細かい制御が出来ないし、
結果的に確実に遅くなる。

バインディングで出来ることは
全部コードだけで出来る。

オープンソースのコントロール読めない人なら
当然、バインディングをお勧めする。

ところでコントロールを作成するレベルの入門書は
洋書でも存在してないのではないか?

自分はMSのコントロールのソースと
インフラロジスティクのソースを解析して覚えた。

で、取り纏めて書籍化を考えたが
確実に売れないのでヤメたがかなり昔のはなし。
550デフォルトの名無しさん (ワッチョイ 2701-ozis)
垢版 |
2020/09/27(日) 21:32:28.68ID:BlHd4Scl0
>>549
売れないことないんじゃない?
VC++でカスタムドローとかオーナードロー
の資料がなくて苦労したわ。
comも。
2020/09/27(日) 21:39:03.46ID:OZSlZqU50
>>549
>コントロールを作成するレベルの入門書は
>洋書でも存在してないのではないか?

ずっと探していたんですけれど、やっぱりないんですね…

>取り纏めて書籍化を考えたが
>確実に売れないのでヤメたがかなり昔のはなし。

kindle 化して、とりあえず様子をみる、というのはいかがですか?
私なら(印税50% の kindle 出版に対して)10000円で買うつもりです
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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