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/22(土) 13:28:47.48ID:5GxlA/I5
>>261
たぶんそういうこと
ただの妄想やで
2019/06/22(土) 14:23:52.15ID:Y4mhjvqt
>>262
事実やで
というか論理が逆で、そもそも複雑だからMVVMを使うんだよ
だから典型的なWebMVCに比べてテストが大変なのは当たり前
264デフォルトの名無しさん
垢版 |
2019/06/22(土) 14:42:56.00ID:rEuWV0gj
MVVMのテストは楽だと思う。
コーディング・テスト・バグ修正の合計時間で考えると得してるかは疑問だけど。
2019/06/22(土) 15:50:17.05ID:5GxlA/I5
>>263
事実ならソースよろ
2019/06/22(土) 15:56:59.09ID:1mmW7z7g
>というか論理が逆で、そもそも複雑だからMVVMを使うんだよ

なら原因はMVVMであることではなくてその前に複雑であることになるが、
自分が何を言っているか理解しているんだろうか。
2019/06/22(土) 15:59:36.88ID:x9ZPs6AR
>>256
>>265
バカじゃねぇの
2019/06/22(土) 16:00:33.66ID:Y4mhjvqt
>>266
だからそう言ってる
UIの要件が複雑だからWPFを採用し、WPFが複雑だからMVVMを採用する
2019/06/22(土) 16:07:07.54ID:5GxlA/I5
>>267
妄想なら誰にでもできるもんね
270デフォルトの名無しさん
垢版 |
2019/06/22(土) 16:37:06.55ID:rEuWV0gj
少なくともUIに関しては複雑だからより、見た目的な理由でWPFだと個人的には思ってるw
271デフォルトの名無しさん
垢版 |
2019/06/22(土) 16:39:59.61ID:ykSXq++N
>>267 >>269
中身なしで罵倒し合うのって、ガキの喧嘩過ぎて見苦しい
2019/06/22(土) 16:41:04.54ID:5GxlA/I5
>>271
罵倒はしてないよ
ソース見てみたいなーって話
2019/06/22(土) 17:00:01.32ID:x9ZPs6AR
>>272
バカじゃねぇの
2019/06/22(土) 17:13:14.38ID:5GxlA/I5
>>271
罵倒って>>273みたいなやつのことっしょ
2019/06/22(土) 17:37:26.58ID:czMayCJt
wpfよりこのスレの方が複雑で草
2019/06/22(土) 23:36:27.74ID:33sn5taJ
うまいオチだ
2019/06/23(日) 00:17:08.67ID:x4qCzVIO
上でテストの話が出てるけど

エンジニアたち「できたっぽい!」
上司「テストして」
エンジニアたち「一通り動いてます!」
上司「エージングもたのむ」
エンジニアたち「丸一日動かしっぱなしでもOKでした!」
上司「了解」

という雑な開発しかしたことない自分にはついていけない…
278デフォルトの名無しさん
垢版 |
2019/06/23(日) 00:50:10.75ID:+hNeL9sR
むしろ簡単なPJの方が世の中多いし、自動テスト作らなかったら困ったであろうことは5年やってて一度しかないw
2019/06/23(日) 06:37:29.75ID:0ZLQVu14
俺は自動テストは一部のモジュールの単体テストでしか使わんなぁ
プロジェクト単位で導入するんじゃなくて、個人で導入するものかと
2019/06/23(日) 07:42:47.22ID:P8H0jYp7
自動テスト無いと困るよ
エクセルスクショは精神を病んでしまう
病んだら困る
281デフォルトの名無しさん
垢版 |
2019/06/23(日) 09:04:47.66ID:ATNbze7o
SIerは縦横に広がるテスト書に満足する顧客が多いからな〜
金持ってる大手ほどその傾向が強い(笑
2019/06/23(日) 10:23:02.87ID:Mn96V+f7
大概自動テストのシナリオ書いてる手間で打鍵した方が早かったな
シナリオが使い回せるならまた違うだろうけど
2019/06/23(日) 10:29:23.44ID:x+1RTwK/
大手だとテストシナリオ書いてる人と実際にコード書いてる人は別

SEが馬鹿みたいに多くいて何か月もずっとテスト仕様書を書いてる
2019/06/23(日) 10:54:16.26ID:P8H0jYp7
エクセルよりコードのほうがシナリオ書きやすい
コードでシナリオ書いたら実行工数は0
1回しかテストしない場合でもコードで書いたほうがいい
2019/06/23(日) 12:21:50.63ID:7s8J8D/4
>>283
タウンワークで時給1600円のテスト要員募集してたな。
「コードは書きません、短期長期どちらも可。」みたいな
2019/06/24(月) 01:03:52.09ID:Y9x0dRru
Prism 7.1 のチュートリアルサイトないっすかね
妖精作戦さんのところは読み物としてはとても良いけどソースはGitHubな!なスタンスなので使いにくい…
公式のチュートリアルは WPF (Legacy) で 6 版のままだし
モヤモヤしながら勉強中
2019/06/28(金) 17:52:56.52ID:lioMzEvp
NVVMでは~.xaml.csには何も書かないのが理想とのことですが、例えば他のwindowを開くような処理はビューモデルに記述するのでしょうか?
根本的な疑問は、~.xaml.csに何も書かないということはモデルでできることが何もなくなり、その代わりモデルに記述するのでべきことを全てビューモデルに記述することになってしまっておかしいのでは?ということです。
私が何か勘違いしてるのは間違いなさそうなのですがそれがわかりません。。
2019/06/28(金) 18:18:14.10ID:iRyUn2/n
.xaml.cs
に書くのはMODELではなくVIEWMODELでは?
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
うん
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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