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

■ このスレッドは過去ログ倉庫に格納されています
2019/05/16(木) 07:52:32.39ID:8fOYIMEO
Windows Presentation Frameworkについて語るスレ。

前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
https://mevius.5ch.net/test/read.cgi/tech/1513175747/

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

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
2019/06/28(金) 18:38:47.09ID:8le9HcFr
>>288
Viewでしょ
2019/06/28(金) 18:43:28.81ID:IeC+ybxD
>>287
あくまで自分の場合だけれど、
画面を開くとかメッセージ出すとかはそれ専用のサービスクラスを作ってる
そしてviewmodelからそのサービスを呼び出すようにしている

viewはicommandを介してviewmodelに通知するだけで、
その後どのサービスを呼び出すかはviewmodel、
実際の処理はサービスクラスに書かれている
コードビハインドに書いた方が圧倒的にシンプルになる場合はコードビハインドに書く
2019/06/28(金) 20:11:16.63ID:1dGBh4nf
VSMでストーリーボード動かすよりイベントハンドラから動かしたほうが圧倒的に楽なんだよな
その場合はコードビハインドに書くしか無いが
2019/06/28(金) 20:17:39.65ID:anlRZAoa
今時アニメーション?
世界で唯一の成功したWPFアプリケーションであるVSはもうアニメーションなんて全く無くなってるのに
2019/06/28(金) 21:25:24.69ID:lanM6mt5
なるほどありがとうございます。
~.xaml.cs=モデルだと思い込んでました。
~.xamlと~.xaml.csはコンパイルされて一つのクラスになるってのは知ってたんですが、つまり2つ合わせてビューなんですね。
おかげでWPFのMVVMの説明がわかるようになってきました。
2019/06/28(金) 22:51:50.22ID:nhUPpRvn
XAMLだけでは足りない機能は、別途、ビヘイビア、トリガー、アクションを作成して対処します。
https://www.atmarkit.co.jp/fdotnet/chushin/greatblogentry_02/greatblogentry_02_02.html
2019/06/29(土) 00:07:12.29ID:CfES0TXk
WPFって、直感的にはすごく簡単そうなのにいざ実現しようと思うとやたら難しいってことが多くない?
テキストの内容が変わったらその時にテキストを2回点滅させるっていうシンプルなことをしようとしたら大変だったんでそう思ったってだけだが。
2019/06/29(土) 00:11:54.69ID:EUtq6Ar6
コンバータはどういう扱いなの?
2019/07/01(月) 20:08:29.98ID:yYlRZT4H
>>287
ビューにはビューの処理だったら書いてもいい
無理してコードビハインドを避けても自己満足できるくらいしかメリットはない
2019/07/01(月) 20:38:17.63ID:lLZwoOoz
Listboxにバインドされたコレクションがあってlistboxitemを
右クリックしてコンテキストメニュー出して元のコレクションからitemを
削除するのってどういうのが一番シンプルなんだろうか
2019/07/01(月) 21:13:17.23ID:mdlnYL3K
>>298
http://ideone.com/HrFr9B
右クリックしたListBoxItemの内容をCommandのparameterに渡してみた
一番シンプルなのかどうかは知らん
2019/07/02(火) 00:01:51.84ID:4m9hOiGn
>>297
クラスを継承して機能を拡張するのはよくないと思う
理由いち 代替策があればそれを使ってクラスの肥大化を回避する
理由に 機能をビヘイビアにすれば再利用が簡単
2019/07/02(火) 09:06:12.90ID:gPm+QAeN
継承じゃなくてイベントハンドラじゃね?主に
ビヘイビア化は後で別のところに使いたくなってからでも遅くない
2019/07/03(水) 01:42:37.28ID:wg/xgQnm
>>300
再利用するための仕組みは再利用される可能性ができてから考えればいい
再利用しないのに手間をかけるのはムダ
ちなみにここで言ってるのはメインウィンドウとかオプションダイアログの話な
メッセージボックスみたいな再利用性の高いものはWPFの機能を駆使してもいい
玄人はコードビハインドを書かないみたいな風潮があるけど、それを信じ込んでコードビハインドを避けて泥沼にはまり込むのは素人
2019/07/03(水) 02:06:51.20ID:oG2WkIil
Prism7ってどうやって覚えればいいの?
2019/07/04(木) 09:51:39.53ID:PdwtXR4j
UserForm内のDatagridが展開されるときにチラチラするんだけど、何とかならないかな...最小サイズから最大サイズに拡大するような描画がある。MainWindow直ならない現象
2019/07/04(木) 10:28:20.53ID:k+s0abOB
UserFormとは 展開とは
2019/07/04(木) 10:56:54.65ID:PdwtXR4j
自分で作ったユーザーフォーム内のDataGridのItemsSourceにバインドしたコレクションに要素を追加するとチラつきます
2019/07/04(木) 13:06:21.63ID:iqQZWFIm
DataGridはゴミだから、WindowsFormsHostでDataGridView使ったほうがいいよ
2019/07/04(木) 23:02:50.87ID:myh2pWbx
スケール感とか分からんけどこの辺は?
https://stackoverflow.com/questions/11379357/wpf-net-4-datagrid-column-performance
309デフォルトの名無しさん
垢版 |
2019/07/04(木) 23:09:08.06ID:LkrEOqlD
>>307
どこら辺がゴミ?
2019/07/04(木) 23:11:07.32ID:OMb74HbU
MSから新しいGUIライブラリが出たらまずDataGridを調べて絶望するまでが儀式だぞ
2019/07/05(金) 00:36:29.15ID:CQGNs6dF
DataGridの問題の殆どは、万単位のデータを突っ込むPG、SE,
クライアントの何れかだとは思うんだがね
実際に使う人は万もスクロースしちゃいないのに
2019/07/05(金) 00:43:44.52ID:auH9BNOV
それは一見意識高いようでいて矛盾した意見だと思うね
十分に練られた優れたUIにはデータグリッドの出番はない
データグリッドはそもそもUIの作り込みに工数をかけたくないときに使うもんだ
そもそも手抜きの道具なのだから、データグリッドの使い方として、面倒だからもう全部突っ込めというのも自然な発想だろう
2019/07/05(金) 14:41:18.94ID:H4UuFejG
MVVM原理主義派とカジュアルMVVM派では話が交わる事はない

どこまでMVVMの作法に則るのがベストかで線引きして適用するのがいいよね
2019/07/05(金) 18:35:21.37ID:Zc5sU972
wpfをマスターしきればMVVM原理主義でいっても苦労せず実装できるので原理主義でいいと思うんだよ。
ただwpfは難しい。並大抵のエンジニアでは原理主義で押し通そうとすると実現できない機能がでてきて挫折する。
と思った。
2019/07/05(金) 18:51:13.41ID:cjl7UwcZ
WPFに携わってだいぶ経ったが、Adorner関連は苦手。
なんでペタっとUserControl貼れないのか
2019/07/05(金) 21:24:53.68ID:7a3tVJ3L
https://blog.okazuki.jp/entry/2019/07/05/104041
UWPンゴwwwwwwwwwwwwwwwwwwww
2019/07/06(土) 08:26:36.67ID:WmAexti4
すっかり忘れ去られてLivetだが、ビヘイビアが物凄く充実しているから
そこだけ引っ張って使うのもありだとは思う
2019/07/06(土) 15:34:02.12ID:G3GVBuNF
更新が続いてればprismとためはるレベルでスタンダードだったんだけどな…
惜しいライブラリをなくしたもんだ
2019/07/06(土) 15:41:44.00ID:lCkeD84I
MVVMが複雑だし洗練もされてないのが悪い
2019/07/06(土) 15:56:25.42ID:6I0IcNLp
MVVMやろうと思ったらフリーのライブラリを利用しないといけないと判って取り組むの止めた
MSから標準で出して欲しかったな
2019/07/06(土) 16:27:06.95ID:u4I8JAFv
Livetは形骸化した原理主義に陥ってコードビハインドを書かないことが目的化していた印象
コードビハインドの代わりにXAMLでプログラミングをし始めて、結局ビューとロジックの分離とは何だったのか状態になっちゃった
MVVMの根本的思想はWebにも受け継がれている優れたものだけど、ビヘイビアは明らかに失敗
2019/07/06(土) 17:20:20.06ID:AYJdcRRH
>>320
jsonもフリーのライブラリが必要だから使わないの?
2019/07/06(土) 18:01:17.99ID:u4I8JAFv
>>322
貴方が思っているほどjsonはスタンダードではありません
ドカタ業界ではjsonを知らない自称ITスペシャリストは決して珍しくはないのです
2019/07/06(土) 18:21:08.86ID:/V3j92xQ
>>322
不要やろ?
2019/07/06(土) 18:26:12.60ID:AYJdcRRH
>>324
MSのサンプルコードですらNewtonsoft.Json使ってるのに?
2019/07/06(土) 18:31:11.27ID:ohoKH1ay
サンプルはサンプルだろ
すらって何だよ
2019/07/06(土) 18:34:58.53ID:eCvKMkr5
2019/07/06(土) 18:35:07.41ID:/V3j92xQ
>>325
うん、不要だよ
2019/07/06(土) 18:36:40.07ID:B0+Ee57g
JSON.NETの作者もMicrosoftの人間だがな
2019/07/06(土) 18:45:28.65ID:IgdFOrod
>>329
それはどうでもいい
2019/07/06(土) 19:32:28.66ID:GsT6/iYQ
だが何なんだよw

よかったな、おめでとw
2019/07/06(土) 19:38:02.42ID:xikW3Xex
>>320
PrismはMSが作ったんじゃなかったっけ
2019/07/06(土) 19:39:18.34ID:u4I8JAFv
>>332
元々はMSが作ったサンプルコード
今はMSが開発やめてMSとは何の関係もないコミュニティプロジェクト
2019/07/06(土) 19:44:49.96ID:NUGgSxTY
jsonってただのデータフォーマットでしょ?
MVVMと何の関係が?
2019/07/06(土) 19:45:44.22ID:GNb7wQCP
ReactiveProperty標準にしてくれたらいいのにな。
2019/07/06(土) 20:08:08.17ID:N/WpPyaa
jsonは.net core 3で標準ライブラリが用意されるだっけか?
2019/07/06(土) 20:47:01.22ID:NPkITZNc
設定ファイルとしてはXMLよりJSONの方が見易いんだけどコメント書けないのがなぁ
2019/07/07(日) 03:33:14.86ID:Cqnlo2q6
でもXMLよりデータサイズがかなり小さくなるからやっぱりjson使う
2019/07/07(日) 06:24:54.82ID:Fr9+4/3b
UWP終わってWPF復活したん?
2019/07/07(日) 06:28:01.55ID:girk9b2Q
どこのプロレス団体かと思った
2019/07/07(日) 11:13:03.83ID:bwq41KU1
復活じゃないと思う

win10ではUWP使え!から他のものも使ってもいいよになっただけ
2019/07/07(日) 12:51:12.10ID:+FdC1iN+
>>336
標準は既に存在するが、それでもMSの人がjson.netを使うほど
json.netの方が出来が良い
2019/07/07(日) 12:58:17.74ID:nrsoMb6V
>>342
最近はMicrosoftも脱Json.NETの流れだけどね
レガシーなコードの塊で、後方互換性を担保しながらパフォーマンス改善は難しいことがわかったから
2019/07/07(日) 13:00:18.65ID:bwq41KU1
VS2019の横のニュース欄にjsonの新しい標準ライブラリの話が書いてあったね
みんなあんなの読んでるのかな?
2019/07/07(日) 13:09:03.68ID:1HKUEekm
>>344
一般ユーザーは知らなくても、フレームワークが裏で使っているライブラリが変わることでこっそり恩恵を受けている
2019/07/07(日) 13:12:24.83ID:Cqnlo2q6
Visual StudioのRESTクライアント生成機能使うとJson.NETを使用するコードが生成されてたけどこれ標準ライブラリ使用に置き代わったの?
2019/07/07(日) 13:17:27.81ID:bwq41KU1
新しい標準ライブラリってまだベータだった気がする
2019/07/07(日) 13:20:32.30ID:1HKUEekm
>>347
.NET Core3.0と同時リリースだから今年の9月
2019/07/07(日) 13:21:07.53ID:1HKUEekm
>>346
それはWPFじゃなくね?そのうちスレチって怒られるよ
2019/07/07(日) 13:38:04.00ID:Cqnlo2q6
>>349
自分もjsonライブラリの話しててそんなこと言うか
2019/07/07(日) 13:40:42.35ID:zdokh1sS
json.netって設計とかくそな部分あるから。
2019/07/07(日) 13:40:43.54ID:1HKUEekm
>>350
話の流れを読んでね
2019/07/07(日) 13:47:39.03ID:C3Myo4MP
>>351
糞かもしれないけどわかりやすくてそこそこ早いから流行ったんでしょ?
もとからあった標準ライブラリがクソ中のクソすぎてMS内部の人から見限られてる状態だから
2019/07/07(日) 13:53:28.39ID:zdokh1sS
>>353
うん、くそだけど一番人気あるのは事実。
俺の用途に全く会わなくて俺は自作したわw
だから、.ner core 3の標準ライブラリはwelcome
2019/07/07(日) 13:54:04.56ID:pwLv7aUD
話の流れよりスレタイ読もうぜ馬鹿❤
2019/07/07(日) 14:23:11.40ID:Peky1Xio
>>355
おまえに興味の無い話なら黙ってればいいだけ
2019/07/07(日) 14:51:55.13ID:n4SGi+HU
>>352
マイクロソフトがjson.net離れしてるって流れなら>>346も流れに沿ってるよね
2019/07/07(日) 14:54:50.49ID:45Wo1jXG
>>357
流れを読んでね
2019/07/07(日) 14:55:54.85ID:OH31RFen
>>358
流れに合ってるよ
2019/07/07(日) 14:56:38.19ID:45Wo1jXG
>>359
それは良かったね
2019/07/07(日) 14:58:06.22ID:OH31RFen
>>360
うん
2019/07/07(日) 17:14:25.68ID:Fr9+4/3b
久しぶりにUWPからWPFに戻ってきたけど、FormattedTextやら、Obsoleteが多くなってるね。
しかし、IOをフルに使う身としては、WPFは快適だ。 UWPでは、FTDIチップ使うのさえ四苦八苦。
2019/07/08(月) 07:52:57.13ID:z63wOsqb
Dynamic Json使わないの?
2019/07/08(月) 07:55:33.69ID:2wLLcnfu
使わない
2019/07/08(月) 08:10:27.82ID:Vrb0WxW4
JSON.NETでもdynamicは使える
ジャップ製マイナーライブラリの出番はないよ
2019/07/08(月) 09:39:38.20ID:HpabqFFB
ジャアアアアアアアア
2019/07/08(月) 18:13:28.58ID:peGtLUpD
イアン
368デフォルトの名無しさん
垢版 |
2019/07/09(火) 14:15:51.32ID:utWXujxk
>>318
Livet一応生きてるよ
2019/07/09(火) 17:38:00.23ID:pw5m4n55
>>368
誰か保守してるの?
まぁ Prismしか使ってないけど・・・
370デフォルトの名無しさん
垢版 |
2019/07/09(火) 18:39:48.90ID:NP6oYl9g
亀すまん
>>301
すべてのコントロールのイベントハンドラをMainWindowに書くのか
2019/07/09(火) 19:36:52.57ID:DK/SA82p
>>369
okazukiとかそのあたりだった気がするわ
2019/07/09(火) 22:54:31.72ID:0koNRpRc
>>371
合ってる
ReactiveProperty作ってる人
2019/07/09(火) 23:25:05.11ID:uHX1iDX/
趣味ならいいけどね
2019/07/09(火) 23:37:20.14ID:ldgoiSvP
>>373
okazukiはMSの中の人だけどLivetのメンテは趣味でやってるだけだよ
2019/07/10(水) 00:33:04.62ID:86TD5zpF
>>374
あ、いや個人がメンテしているライブラリは趣味で使うんならいいけどねって話
2019/07/10(水) 01:00:09.57ID:cBFGEq/D
reactivepropertyだってもとはneueccって人じゃなかったっけ?
okazukiは他人に寄生してるだけのイメージ
2019/07/10(水) 01:08:37.12ID:kxJIAy2u
>>375
それだとオープンソースの多くが使えなくなるぞ
2019/07/10(水) 02:03:59.13ID:MPQVUmOG
>>376
オリジナル製作者ではないけど、何年も積極的にコード書いてるのに酷い言い草
2019/07/10(水) 08:01:23.52ID:dBL3gDRN
>>377
そりゃそっちの方が大多数だからね
2019/07/10(水) 08:10:05.16ID:R2F1hs2d
reactivepropertyは便利だよねぇ。 打ち込み量が減って、本来のNotifyPropertyChangedの書き方忘れちもうた。
2019/07/10(水) 09:06:54.62ID:nPFkOLYt
なんでメンテナーが個人か企業かで扱いがかわるの?
ライブラリの良し悪しとかライセンスが問題ならわかるけど
2019/07/10(水) 11:53:22.63ID:wb3Yvf8h
使用者数のほうが強いわ
2019/07/10(水) 12:43:41.15ID:dBL3gDRN
>>381
正気?
2019/07/10(水) 12:44:49.27ID:YUV4DoDN
>>383
それが一般的な見解だよ
2019/07/10(水) 12:46:00.89ID:d065zGS3
>>383
むしろ個人メンテナーなライブラリを避けるほうが正気か?って思うよ
メンテナーがどうのこうのより使いやすい、利用者が多いで選定すればいい
2019/07/10(水) 13:05:23.38ID:oIHYTC49
Linuxだって個人が趣味で作り始めたものだしな
2019/07/10(水) 14:52:44.23ID:dBL3gDRN
>>385
趣味ならね
2019/07/10(水) 15:20:47.42ID:nPFkOLYt
>>387
業務でも一緒だよ
おかたいところでライブラリの使用許可云々が厳しいところもあるだろうがそうじゃないとこもあるよ
スマホアプリなんかだとわかりやすいと思うけど権利表記に並んでる使用ライブラリには個人メンテナのものなんて山ほどある
↑で出たreactivepropertyなんかもそうだし、unity製ゲームなら多くのアプリでunirx使われてる
任天堂が出すゲームアプリですら趣味の範囲というなら話は別だけど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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