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/
19デフォルトの名無しさん
垢版 |
2022/10/30(日) 06:47:00.66ID:J6pK8pxJ
>>16
MessageBox.Show ( ListView.SelectedValue.ToString());
トホホ〜。やってみましたがでませんでした。
2022/10/30(日) 07:10:56.12ID:A1wSH6ms
普通引っかからないところで引っかかって教えられたことを聞かず試行錯誤繰り返してるやつがいると、まるで難しいことのように見えるな
2022/10/30(日) 07:19:30.99ID:KtvTwplX
調べる前に聞くタイプだな
一番面倒なやつ
22デフォルトの名無しさん
垢版 |
2022/10/30(日) 08:02:20.93ID:J6pK8pxJ
一応、
ListView c# WPF ダブルクリック などの語句で調べてはいます。
MFCの方がよっぽど楽だな。
2022/10/30(日) 08:53:35.92ID:+yEKUb5X
>>18
例えばボタンのクリックはCommandをバインドすればいいけど、ダブルクリックはビヘイビア噛まさないとVMへ通知が出来ない
WPFはシングルクリック優先で設計されてるんだよ
24デフォルトの名無しさん
垢版 |
2022/10/30(日) 09:34:34.97ID:J6pK8pxJ
>>23
そうなんだ。
奥が深いというか改めて面倒なんだなと思いました。
2022/10/30(日) 11:17:59.61ID:J5x/gUfl
それボタンの話だろw
どんなフレームワークでもボタンはクリック優先だわな
26デフォルトの名無しさん
垢版 |
2022/10/30(日) 16:03:55.87ID:DkOekoOd
アプリの中でダブルクリックさせようとしてるのがセンスないんじゃないの
2022/10/30(日) 16:08:13.76ID:nQTU3WLr
Windows標準のエクスプローラで、ダブルクリック使うんだが
何いってんの?
28デフォルトの名無しさん
垢版 |
2022/10/30(日) 17:30:21.35ID:DkOekoOd
あ、この人センスないわ
2022/10/30(日) 17:36:44.79ID:A1wSH6ms
ダブルクリックなんてよく使うアクションを使うなという方が客観的に見てセンス無いがここは初心者がトンチンカンなことを言うスレだから仕方ないか
2022/10/30(日) 18:00:28.14ID:KtvTwplX
わかってるじゃんw
2022/10/30(日) 18:49:04.83ID:H52Qkbiq
初心者に優しくない技術って廃れるよな
2022/10/30(日) 19:08:18.65ID:A1wSH6ms
Winformsは廃れたな
33デフォルトの名無しさん
垢版 |
2022/10/30(日) 21:43:21.74ID:+d9s9Afp
Winformはダサいからね
2022/10/30(日) 22:03:55.21ID:A1wSH6ms
Reactは初心者に優しくないが廃れてないな
35デフォルトの名無しさん
垢版 |
2022/10/30(日) 22:06:07.06ID:+d9s9Afp
Blazorあるから時期に潰れるだろね
2022/10/31(月) 00:08:31.05ID:WMzulB9K
潰れるかw
37デフォルトの名無しさん
垢版 |
2022/10/31(月) 06:00:17.22ID:Qc/loaUZ
>>14
で、結局この問題は解けないのか。。
2022/10/31(月) 08:07:14.46ID:SGtVENaU
今ググったらすぐ答え出てきたけど何を検索してたの?
2022/10/31(月) 08:11:26.80ID:GLsEtfBh
ていうか教えたのに聞かないだけだから放置でいいぞ
40デフォルトの名無しさん
垢版 |
2022/10/31(月) 08:27:30.10ID:ISriQRRr
検索した結果が正しい訳ではないよ。
試したの?
2022/10/31(月) 08:28:46.76ID:GLsEtfBh
うぜえw
42デフォルトの名無しさん
垢版 |
2022/10/31(月) 08:59:17.38ID:BBD1kLj8
アプリの中でダブルクリックがほとんど使われてないことに気づいてしまった・・・
2022/10/31(月) 09:05:53.25ID:WMzulB9K
結局こんな簡単なことを自分ができないからWPFそのもののせいにするやつは何やっても無能ってだけ
2022/10/31(月) 09:07:44.15ID:GLsEtfBh
試しに中学生の甥に実装させてみたら10分でやりおったわ
2022/10/31(月) 09:19:45.59ID:jAJ0SKjr
逆に何がわからないのかがわからん
迷うところある?
MFCができる知能があるなら楽勝だと思うがほんとはMFC知らんのじゃないか?
2022/10/31(月) 09:38:30.76ID:gNe27yrb
>>42
そう?
文字列選択とか便利だと思うけどね
まあ選択範囲がアプリ毎にまちまちだからちょっとイラっとくることもあるけど
2022/10/31(月) 09:54:22.74ID:UvtCs91F
釣りじゃね。 なんで釣られるの あんた達。 釣り耐性無いの。 レスしたら負け。
どうみても、知った上でのカモリ釣りにしか見えない。
48デフォルトの名無しさん
垢版 |
2022/10/31(月) 10:20:53.87ID:3dM38dwf
えらそうに御託並べるだけ。ソースも提示できない。まぁそういう板ですから。

業務では(SQL)検索->リスト出力->選択->詳細をDBからSELECT->該当の詳細表示が
一般的。
シングルクリックだと間違えてクリックがあり得りえる。いちいちSELCT実行となるので
そういう余計なDBアクセスを防止する為にわざとダブルクリックにしている訳。
この位、常識だろうに。
2022/10/31(月) 10:44:28.68ID:gNe27yrb
DBアクセスが問題になるような頻度なら確認ダイアログ出すなりすればいいだけだろ
そもそもシングルクリック間違うような奴はダブルクリックも間違えるだろうし
50デフォルトの名無しさん
垢版 |
2022/10/31(月) 13:00:15.14ID:3dM38dwf
Update,Deleteなら兎も角、Selectでいちいち確認ダイアログ出してたら使いにくいと
言われるのが落ち。
シングルクリックより誤操作が少なく、使い買ってが良い、これの妥協がダブルクリック。
システムの負荷を考慮するのも大切だけどユーザの利便性も考慮する必要がある訳です。
2022/10/31(月) 13:03:29.45ID:cPgJ75vw
「詳細を表示しますか?」ってダイアログ出すクソUI笑う
2022/10/31(月) 13:09:01.14ID:JaHljwAe
詳細(表示)ボタン付ければ良いと思う
2022/10/31(月) 13:29:01.42ID:fJpngcbR
リストボックスのダブルクリックだよね?
ワンクリでヘッダーぐらいは更新しないとクレーム来るでしょ
詳細表示は別にボタン用意すればいいね
2022/10/31(月) 14:49:51.88ID:cPgJ75vw
ダブルクリック使わないインターフェース考えるのもいいけどさあ
これ使えないの年寄りだけだから年寄りが使わないとわかってるなら避ける理由もないんだぞ
それより長押しとかいうトロ臭い入力方式を何とかしろよ
2022/10/31(月) 15:19:17.82ID:JaHljwAe
PCかじった年寄りはむしろダブルクリックしまくるだろ
避ける理由は、ダブルクリックを使うアプリが減ってきたのと、手の負担が大きいこと
2022/10/31(月) 15:20:32.45ID:I4bzY6kk
ダブルクリックで大騒ぎwww
WPFwww
57デフォルトの名無しさん
垢版 |
2022/10/31(月) 16:37:28.78ID:BBD1kLj8
設定アプリとかの左側が実質リストボックスだけどシングルクリックだよな・・・
2022/10/31(月) 19:09:28.22ID:+Sja+VIl
検索->リスト出力は時間がかかるときはあるけど
リスト選択->詳細って一般的には瞬時に表示されるんじゃね
余程システムがポンコツだったりすると違うかもしれんが
59デフォルトの名無しさん
垢版 |
2022/10/31(月) 19:35:11.46ID:Qc/loaUZ
>>14
いまだ回答なし。
ま、答える義理も義務もないけどな。
ほぼ全員知ったかぶり。
2022/10/31(月) 20:53:21.16ID:WMzulB9K
>>59
アホなのか?
アスペなのか?
2022/10/31(月) 20:57:56.14ID:D3Tx2nqj
ググレカス
62デフォルトの名無しさん
垢版 |
2022/10/31(月) 21:17:03.06ID:Qc/loaUZ
>>61
調べてもわからんから聞いてるんだろ。
大丈夫?
63デフォルトの名無しさん
垢版 |
2022/10/31(月) 21:17:38.30ID:Qc/loaUZ
>>61
じゃアンタが検索して回答提示しろよ。
できねーよな。しっかたぶりだし。
2022/10/31(月) 21:28:07.26ID:5igLhLXL
検索してみたけど、これでなんとかならんか?
https://stackoverflow.com/questions/728205/wpf-listview-attaching-a-double-click-on-an-item-event
2022/10/31(月) 21:29:13.05ID:WMzulB9K
>>63
もしかして「知ったかぶり」も知らんのか
2022/10/31(月) 21:38:37.36ID:Y6Fdt8Ii
「削除しました。よろしかったですか?[はい] [いいえ]」

はい→「それはよかったです。[OK]」
いいえ→「それは残念です。[OK]」
2022/11/01(火) 00:08:44.63ID:z+u5tjsY
>>14
こんなほぼ丸投げするから解答するほうもダルくて相手にされないんだよ
だからググれになる
3,4行で解答できないような質問しても余程の暇人か解答大好き人間いないとスルーされるのがオチ
68デフォルトの名無しさん
垢版 |
2022/11/01(火) 04:12:20.13ID:QkE4MzJq
>>64
後で試してみる。

>>67
WINFORMならそれこそ、3-4行だからそのノリで書い
てしまった。
WPFだとこんな簡単そうな事でも大変なんですね。
それすら知らなかったので。。申し訳なかった。
69デフォルトの名無しさん
垢版 |
2022/11/01(火) 06:20:22.11ID:QkE4MzJq
いろいろ試したけど無理そう。
まぁ、WinFormsで作ったものを勉強としてWPF版にしてみようと思っただけなんで、
諦めます。
いろいろどうも。
2022/11/01(火) 06:42:03.86ID:4va+eSzr
3~4行で書けるのを教えてやったのに文盲目はこれだからw
71デフォルトの名無しさん
垢版 |
2022/11/01(火) 07:14:58.24ID:QkE4MzJq
?
どれ!?
2022/11/01(火) 08:16:26.02ID:QDraTKBS
荒らしの自作自演きもいんだけど
73デフォルトの名無しさん
垢版 |
2022/11/01(火) 12:58:42.34ID:UaFy+ttV
(ID相違)
仕方ないのでdatagridにした。
MessageBox.Show( ((TextBlock)DataGridWindow.Columns[0].GetCellContent(DataGridWindow.SelectedItem)).Text);
これで取得できたので後はIDでSELECTして詳細出し。
同じ文法でListViewでも取れるかと思ったが駄目だった。残念。

しかしListViewはヘッダソートがないしWin32APIコモンコントロールじゃあるまいし
初めから実装して欲しいね。
datagridはソート機能実装してるのに。。

後はカラムの値によってその行の色を変えたり、カーソルのある行の色を変える。
(そうすると分かりやすい)
ListViewはカーソルのある行の色が変わってくれるのに。。
まだ先が長いな!
2022/11/01(火) 13:44:58.28ID:IS8qFv+O
>>73
そんなの>>16で出来る。
>>19でToString()してるけど、UserクラスのToString()はオーバーライドしてるの。
2022/11/01(火) 13:53:38.63ID:4kM8KyM3
なんで煽り荒らしに親切にしてんの?
76デフォルトの名無しさん
垢版 |
2022/11/01(火) 14:42:58.09ID:J1BZNswu
ListView.SelectedValue.ToString()
これじゃだめだよね
どうすんだろ。
2022/11/01(火) 20:25:42.16ID:bJBbq9NQ
MVVMでデータバインドすればキャストも気にしなくて良い
素晴らしい!
2022/11/01(火) 20:57:51.75ID:ktT4MLQf
バインド理解できないんだろ
2022/11/01(火) 21:13:01.31ID:UMY/AZeU
MVVM使わないと
コード量が1/3位になる気がする
ついでにデバックまでやりやすくなる
80.NET MAUI HighScool
垢版 |
2022/11/01(火) 21:16:31.75ID:UUH/mDfh
MVVMのCommunityToolKit使ったことないんだがこいつの凄さがわかる記事とかってないかな?
未だ使ったことない
2022/11/01(火) 23:29:07.73ID:KHUOHj7T
別に凄くはないよ
公式で出すのが遅すぎた
2022/11/02(水) 00:10:22.64ID:YnGSGfSm
マルチウィンドウなアプリを作っています。
メッセージボックスのようにウィンドウ表示中にその他ウィンドウにフォーカスしようとするとメッセージボックスにフォーカスが強制的に戻る仕組みが通常のウィンドウにもほしいです。
window.showdialog()がその他ウィンドウを無効化するまではよかったのですがフォーカスが戻ることはないのでちょっと違うなーと。
よろしくお願いします。
2022/11/02(水) 01:47:35.40ID:1h5Pldck
コードビハインドのイベントハンドラからデータコンテキストのコマンド呼べば立派なMVVMじゃないのかと私は思うのですが
やはりDataContext as OreVM のようなケツアワセが密ですなのがまずかろうなのですか?
84デフォルトの名無しさん
垢版 |
2022/11/02(水) 05:55:39.16ID:ZLG7n9c4
>>76
実は誰もわかりませんヨ。
85デフォルトの名無しさん
垢版 |
2022/11/02(水) 07:25:53.77ID:ZLG7n9c4
>>82
API FindWindowで(HWND)ウィンドウハンドル
取得してSetForcesするとか。
86デフォルトの名無しさん
垢版 |
2022/11/02(水) 07:29:42.90ID:ZLG7n9c4
>>79
1/4の間違い。
2022/11/02(水) 11:02:57.90ID:ELmiQmoZ
>>85
ウィンドウハンドルはWindowInteropHelperクラスで取得できる
2022/11/02(水) 14:53:36.97ID:oFLEXjDH
>>86
89デフォルトの名無しさん
垢版 |
2022/11/02(水) 16:21:23.69ID:UTfJbDjM
>>82
利用者がいらいらしそうなUIだな
2022/11/02(水) 16:26:18.79ID:1kc06PSN
xamlファイルがでかくなったんだけど、その中の一部を適当にUserControlに切り出して別のファイルにするのあり?
ただし、UserControlに依存プロパティとか一切追加せず再利用性は考えない
2022/11/02(水) 16:46:46.13ID:JEUy4laV
再利用性を考えろよ
2022/11/02(水) 17:40:49.75ID:ZntxxxkH
>>90
自分はそうするよ
そうしないとメンテできない
2022/11/02(水) 18:05:13.82ID:1kc06PSN
>>92
ありがとう
ファイルがでかくなってきて放置してたけどダイエットさせます
94デフォルトの名無しさん
垢版 |
2022/11/02(水) 18:31:17.89ID:ZLG7n9c4
いつもお世話なってます。ListViewのレス主。

TABコントロールにデータグリッド張り付けてリスト表示はできるようになった。
初WPFということもあり大変の連続。さらなる問題が。

例のダブルクリックwしてID取得できたので詳細表示用のTABに切り替えようと
したら切り替わらん。
シングルクリック(データグリッドに対して)だと問題なくTABは切り替わる。
タプルクリックのイベントドリブンは実行されてる。

MyTabControl.SelectedIndex = 1; の方法のほか、

<TabItem Header="tabitemI"> にして
tabitemI.IsSelected = true; の方法も試したがダメ。

謎すぎ。
95デフォルトの名無しさん
垢版 |
2022/11/02(水) 20:30:58.96ID:UTfJbDjM
SelectedItemにそのTabItemぶち込めば?
2022/11/02(水) 22:11:15.26ID:8XXQ/ttC
>>80
https://qiita.com/hqf00342/items/40a753edd8e37286f996
パフォーマンスと省メモリだそうな。
そんなことより他がオワコンだから必然的にこれになる。
97.NET MAUI HighScool
垢版 |
2022/11/02(水) 22:48:17.83ID:v08tA7cv
>>96
おぉサンクス
2022/11/03(木) 11:11:51.07ID:G7rGbxep
>>85
>>87
ありがとうやってみます。

>>89
業務アプリなんで操作間違えられるよりいいかなーと
2022/11/03(木) 11:19:25.56ID:0QCo1mM0
マルチウィンドウじゃなくシングルウィンドウで内容を書き換えるのが最近の流行だぞ
触れないウィンドウをバックに表示する意味がないしウィンドウに触れなければ邪魔になっても移動させることすらできん
ウィンドウハンドルの使い方をわざわざ調べて手間かけて作ってレガシーな使用感でユーザーをイライラさせるくらいならルーティングの方法を調べた方が有益なんだがな
まあ今から設計し直せないなら仕方ないが
2022/11/03(木) 11:55:41.75ID:G7rGbxep
>>99
同じ意見です
趣味開発の範囲ではシングルウィンドウでしか作ってないですね
UWP触ってきてたんでWPFのマルチウィンドウでもUIスレッドが共通なところに魅力感じたのとまあ画面設計がそうだったからに尽きるかなあ
101デフォルトの名無しさん
垢版 |
2022/11/03(木) 13:22:02.66ID:/C0V73DR
MSはMDI非推奨。
2022/11/03(木) 13:26:48.39ID:irjlHMAb
MDIの話など誰もしてないが
ていうか今MDIなんて見ないだろ
2022/11/03(木) 13:45:45.53ID:j+eH91hf
MDIはMultiple Document Interfaceの略で複数のドキュメントを一つのアプリケーションで開くUI
今で言うとブラウザのタブ表示に近いがタブと違ってそれぞれ独立したウィンドウとして大きさを変えたり最大化最小化したりできる
ただし親ウィンドウというものがあってドキュメントのウィンドウはそこから出ることができない

一方今ここで話されているマルチウィンドウは複数のドキュメントのそれぞれに対応するウィンドウじゃなく一つのドキュメントのユーザー入力のそれぞれのフェーズに対応するウィンドウ
たとえば一覧ウィンドウと詳細ウィンドウなどが該当する
新しく開かれたウィンドウは親ウィンドウの外に開かれ親ウィンドウは入力を受け付けなくなる
2022/11/03(木) 13:47:30.34ID:j+eH91hf
>>102
Visual StudioがまだMDIを採用してるな
105デフォルトの名無しさん
垢版 |
2022/11/03(木) 15:03:55.39ID:myjWXqan
わかりやいのではEXCEL。
2022/11/03(木) 15:06:26.20ID:j+eH91hf
いつのExcel使ってるんだよ
2013でSDIになってるぞ
https://learn.microsoft.com/ja-jp/office/vba/excel/concepts/programming-for-the-single-document-interface-in-excel
2022/11/03(木) 16:52:21.82ID:knTa8KlP
Visual Studio のもMDIとは違うでしょ
親ウィンドウの外に出せるし
108デフォルトの名無しさん
垢版 |
2022/11/03(木) 17:21:22.30ID:HObwb99t
そもそもMSのUI設計がすべて正しいという主張は笑われる時代
2022/11/03(木) 18:09:55.86ID:YKwh7Bo0
CommunityToolKitのMVVMって、ObservablePropertyのsetterの可視性変えられないの?
問答無用でpublicになりんだが
ゴミすぎる
110デフォルトの名無しさん
垢版 |
2022/11/03(木) 18:19:45.38ID:myjWXqan
VS6.0 MFCではMDI,SDIのプロジェクトあったな〜。MDIは面倒そうだし
使い道がなかったので使わなかった。
2022/11/03(木) 18:34:20.06ID:NbsIPyEs
全て正しいとは思わないけどまあこなれている方だと思うよ
むしろ笑われてるのは昔の印象で語ってる老害かと
2022/11/03(木) 18:39:58.92ID:0QCo1mM0
Windowsアプリを作るならMSのアプリを手本にするのは当然だろ
じゃなきゃ「癖がある」って評価にしかならないんだから
独自のUIは敬遠されるだけ
2022/11/03(木) 19:57:29.23ID:biYgemCw
vs codeもウインドウを外に出せたらいいのにな
業務アプリなんてしょうもない画面沢山作るんだからタブブラウザみたいなUIがいいよ
2022/11/03(木) 20:11:01.69ID:tNReOobE
WinUIの1.1以降の新しいマルチウインドウは、シングルウィンドウで運用しているページのオブジェクトをそのまま
新しいウインドウに貼り付ける想定で組まれているんだよな
だからSDIで作ったアプリのグラフなどをマルチウインドウで比較など作れる
2022/11/03(木) 22:37:33.32ID:mR06n/1V
>>113
それはVSCよりも
ベースのElの問題かな
116デフォルトの名無しさん
垢版 |
2022/11/04(金) 19:50:08.18ID:M4OnBPBD
WINFORMSでできることは全てできると聞いてたのに、、、
this.button1.PerformClick(); とか
SendKeys.Send() などないじゃないの。
全くもって騙された!
あれこれやればSendKeys.Send()は使えるらしいが。

ホンマWPF は疲れる。
2022/11/04(金) 20:18:07.73ID:Lq/sATuq
ボタンクリックメソッド呼べばいいじゃん
2022/11/04(金) 20:19:58.46ID:RBTLkTQo
誰に聞いたんだか知らんがまあ自分で作ればできるっちゃできる
そもそも違うものなのになぜ同じだと思ったんだろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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