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

■ このスレッドは過去ログ倉庫に格納されています
2023/09/09(土) 07:02:56.33ID:xfSBfAyx
WPF(Windows Presentation Foundation)について語るスレ。

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

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

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
2024/02/08(木) 13:51:47.02ID:m2dEY1pn
ステップって汎用機かよ!
2024/02/08(木) 13:58:04.22ID:Pm26MmfD
スパゲッティー錬金システムか
2024/02/08(木) 15:24:59.68ID:yILQX4Ph
ステップ…
無駄なstackpanelの入れ子を1000個ぐらい入れたらどうなるの?
2024/02/08(木) 16:32:24.17ID:y8Tm2IvK
実装の早い奴と評価され仕事が増やされる
その後無駄実装がバレて減給
仕事は増えたまま
2024/02/08(木) 16:45:26.62ID:m2dEY1pn
日立とかの大規模プロジェクトじゃまだステップ数で管理してんのか?笑
339デフォルトの名無しさん
垢版 |
2024/02/08(木) 18:04:10.45ID:ShTXBa9s
拝承はステップ数報告しないと品証部が承認しないとか言ってたな
2024/02/08(木) 18:10:59.66ID:Eyr6tv6G
今もステップ数やっるところあるのか
2024/02/08(木) 18:29:50.82ID:wtMNZ0uh
10年ぐらいWindowsの世界から離れてるんだけど、
10年前はFormもWPFもメンテナンスモード状態で
ストアアプリは低機能過ぎて論外、ということで
UIに決定的な選択肢が存在しない状態だったと思うけど、
ひょっとして今もまだそのグダグダ状態が継続してるの?

あいかわらずMSはUIに関して何のロードマップも示しておらず、
WPFが消極的に第一選択って状態?
2024/02/08(木) 18:33:12.53ID:wtMNZ0uh
追加質問
今確認したらMVVMのスレがなくなってるみたいだけど、
今もMVVMは推奨されてるの?あるいはオワコン化?

個人的にはMVVMには疑問しか感じなかったのでオワコン化してくれてると嬉しい
2024/02/08(木) 18:34:59.11ID:bFznU8/N
>>333
それはよくわからない。。
同じマークアップ言語でいうと html とか css とかはどうしてるの?

俺が言ってるのは今どきステップ数を指標に用いるような体制だと、
そのこと以外でも今後色々と時代遅れなことをやらされるんじゃないかなという老婆心。
DRYを無視したコピペプログラマの方が、
最小限のコードでメンテしやすいコードを書いた人より生産性が高いと評価される、
みたいなことが起こり得る。
実体験。
2024/02/08(木) 18:44:08.91ID:axNEUfnG
>>341
各自、好きなもので勝手にやってくれという感じ。
全く力を入れてない。
2024/02/08(木) 21:39:05.80ID:kAHUeLc0
>>341
MSとしては今は一応WinUI3推しなのかな
後にはMAUIも控えてる
が、完成度がお察しなの相変わらずで状況は変わってない

>>342
そういえばMVVMの次はMVUだなんて言ってたけど最近あまり聞かないな
MVVMは割と出来の良いToolkitがやっと出てきて若干作りやすくなった
2024/02/08(木) 22:56:08.56ID:yILQX4Ph
>>341
ストアアプリの後継のUWPが開発者に不評でwindowsの先進機能を利用できる唯一のwinRT APIが宙に浮いてた
Win32やWPFやWinFormsからストレートに利用できない

んで別れてしまった物をつなごうとリユニオンと言うプロジェクトが始まって相互利用しやすい状況を作りましょうということに
今はそれが名前を変えてWindows App SDKと言う巨大なSDKの枠組みになった
でも皆が思ったものとはかなり違うものなんじゃないかと

その一方でネイティブからもいろいろ先進GUIを利用しやすいようにとWinUI3と言う新フレームワークも作られた
これが非常に出来が悪いので積極的に利用しづらい状態

生殺し

MVVMは原理主義者が減ったように見える
UWPの時点でMSのサンプルやスケルトンもMVVMは意識されてないものが多かったし
MVVMのフレームワークもMS外に出された
2024/02/08(木) 23:24:09.69ID:m2dEY1pn
>>343
一週掛けて遂にバラメーターで変更だけで済む方法を発見しました!より
汚いコードを大量生産する方が評価されるようなプロジェクトは辛いよ
2024/02/08(木) 23:26:32.13ID:m2dEY1pn
>>346
MVVMは何度も言っているように
最初からblandの為のフレームワークですから
2024/02/09(金) 00:02:47.09ID:8dGfxt4Y
何度も言うならスペルは確認しような
2024/02/09(金) 00:21:37.56ID:VlbqHkkF
winformsでいいじゃん派だったけどwinforms製のService Bus Explorerってツール使ってみて、これはダセぇと思った
やっぱwinformsあかんわ
electron製のStorage Explorerと比較してデザイン雲泥の差
2024/02/09(金) 00:26:25.62ID:pMWpEfHO
いつまでたってもMVVMが流行らないのはそれ自体というよりXAMLの難解さが原因だと思う
あとはReactivePropertyとかPrismあたり使いだすと更に必要な知識が増えるし
まともにMVVM出来るようになるまでの敷居が高杉
352341
垢版 |
2024/02/09(金) 01:29:38.70ID:A61gB+sy
みなさんリプ感謝
どうも相変わらず決定打の選択肢が存在しない状況みたいですね。

先日経済ニュースでMSの一番の稼ぎ頭はAzure関連になってるって聞いたから、
もうデスクトップにはあまり投資する気がないのかもしれないですね
2024/02/09(金) 05:16:51.60ID:p3MmIjTm
>>349
苦手なんだわ英語
2024/02/09(金) 05:19:46.05ID:p3MmIjTm
>>352
react native for windows
https://github.com/microsoft/react-native-windows
2024/02/09(金) 16:16:42.24ID:GaqK7h15
>>343
もちろんステップ数が多ければいいって訳じゃないけども、
変化があったら何か理由があって修正したはずってのを管理したいだけなのです
2024/02/09(金) 16:31:44.79ID:Ug+IZ9PT
>>355
今どきはそういうのはgitとかでやるもんじゃないの?
2024/02/09(金) 17:21:10.88ID:yBOwgCMz
>>355
目的と手段の関連性がよくわからんな
2024/02/10(土) 01:51:05.15ID:ghsIMPAY
>>351
CommunityToolkit.Mvvm(旧Microsoft.Toolkit.Mvvm)がもっと早く出ていればな
Prismは必要以上に肥大化して複雑になり過ぎた
2024/02/10(土) 12:18:18.76ID:siL8f8mn
何がしたいのかいまいちわからないけどワークスペースのライン数数えたいなら今はcloc一択じゃないかな
2024/02/15(木) 23:48:07.50ID:sIh+C39m
1.5は大型アップデートのようだな
開発体制変更でだいぶ変わったんだろうか
2024/02/16(金) 15:28:06.91ID:25EHl0Ar
>>360
WindowsAppRuntimeのインストール権限の仕組みが良く分からん
管理者権限は要らない、が正解で良いんだよね?
2024/02/21(水) 12:32:37.21ID:PFGf4NHy
.net frameworkと.net
なんでこんな紛らわしい名前つけるのか
.net coreでよかったじゃん
2024/02/21(水) 13:56:17.87ID:lp6zNfu6
数字が大きい方が新しいよ!
364デフォルトの名無しさん
垢版 |
2024/02/23(金) 04:15:46.12ID:U6VjGFFM
実際5.0になり、4.8を数字的に越えたからCoreと付けるのやめたんやしなぁ。
2024/02/23(金) 04:47:46.51ID:wRMoGqp+
.NET Core 3.1の次だから本来4.0になるところを紛らわしいからスキップして5にしただけで
当初は超えてなかった
366デフォルトの名無しさん
垢版 |
2024/02/23(金) 17:01:41.10ID:mMXFzxMZ
1.4のランタイムがMSStoreの更新してくれるアプリの扱いになってるから管理者権限なんていらないんじゃないの
2024/02/23(金) 18:16:09.20ID:Jh7ZBph7
WPFの11テーマの対応って簡単に試せないのか?
.net 9まで待てと?
2024/02/25(日) 21:22:50.51ID:gLzXLzAw
儲かるのが、VB6の改造仕事しかない。
たまに、WPF仕事もやりたい。
2024/02/26(月) 00:47:29.41ID:wRPcw5gK
未だにVB6のメンテってあるよな
濫造されたからね
370デフォルトの名無しさん
垢版 |
2024/02/26(月) 05:52:13.71ID:ty4kadJF
俺もVB6のシリアル通信コントロール使ったアプリをWpfのC#でリメイクしたよ。
371デフォルトの名無しさん
垢版 |
2024/02/26(月) 08:21:39.66ID:XWJtja4N
企業の設備がWndowsXPでVB6というのが膨大にある。
さすがにN88BASICは少なくなったが、その手の案件は、中抜き業者が手を出さない。
となると企業とダイレクト契約になり、利益率が高い。
契約してしまえば、WPFでもWINUI3案件でも、小規模は見積り有利な方に注文が来る。
ただ、VB6に比較して利益率低いので、普通はVB6案件しかとらない。
372デフォルトの名無しさん
垢版 |
2024/02/26(月) 11:26:24.39ID:pWCmHinc
ダー
2024/02/26(月) 13:36:32.07ID:EabBEBrg
.NET Frameworkも4.8で終わらずに4.8.1とか出てるからな
374デフォルトの名無しさん
垢版 |
2024/02/26(月) 14:03:44.02ID:Y4jRoRGa
そのうちジワリと4.8.2とかなりそうよな。
4.9までいくとはおもわんが、4.8.4くらいまではいくと思う
2024/02/27(火) 14:02:05.28ID:991PBCrk
.NET 8 は何故コケたの? [422186189]
https://hayabusa9.5ch.net/test/read.cgi/news/1709009317/
2024/02/27(火) 23:42:36.14ID:e1bc8gxM
フレームワークのバージョンにコケるもクソもないと思うけど
377デフォルトの名無しさん
垢版 |
2024/03/11(月) 00:55:23.89ID:HkYrCely
親Windowから子Windowを開くのってMVVM的にはどう書くのが標準的なの?
普通にViewのイベント拾ってコードビハインドで子Window開いてやればええの?
2024/03/11(月) 07:48:27.75ID:pZ1yIH4h
VMのデリゲートをVがサブスクライブする
2024/03/11(月) 09:57:46.60ID:IOphoT8k
ウィンドウ開くとか検索したらすぐでてこないか
380デフォルトの名無しさん
垢版 |
2024/03/11(月) 12:51:12.10ID:wdmrI2rW
多用しないならそれで十分感はある
2024/03/11(月) 12:54:07.48ID:H3ynRxY9
>>377
でた!mvvmの糞さがわかる問題
2024/03/11(月) 13:00:05.68ID:Nab3g2JD
子Windowを開くというUI自体がWPF的でないという印象がある
どちらかというと、スマホUIのような画面遷移でどうにかするUIな印象
デスクトップアプリなんだから子Window開きたいというのも分かるけど
2024/03/11(月) 13:56:19.62ID:H3ynRxY9
WPFにサブウインドー開けないなんて制限ねーーわ
2024/03/11(月) 17:34:40.85ID:0kIYwJYj
リストビューのアイテムに隙間空いてんのかよ
クリックしても反応しねー時あるからおかしーとおもったわ
責任者出てこい
385デフォルトの名無しさん
垢版 |
2024/03/12(火) 09:25:50.34ID:oMOjwN9V
Apple musicアプリ快適すぎワロタ
WinUI3だぜ?なんでAppleの方が作り方うまいんだよw
2024/03/12(火) 09:45:29.07ID:Wt4b/TQL
MDIが作れないって意味なんだろうか?
SDIで十分だけども
2024/03/12(火) 15:03:53.98ID:vyCpIdp2
MVVMの宗教上の問題だよ
親Windowのハンドルが必要だからVMでは開けない
コードビハインドは使用禁止なのでViewでも作れない
2024/03/12(火) 20:46:22.46ID:m8EOe0Bf
じゃゴミプロダクトじゃん
2024/03/12(火) 21:24:31.00ID:+BbYrvFB
mvvmがゴミ思想で
WPF本体は良く出来てる
2024/03/12(火) 22:02:39.08ID:oG8PduKS
>コードビハインドは使用禁止なのでViewでも作れない

それは誤解。viewにあっていいものはコードビハインドに書けばいい。
391デフォルトの名無しさん
垢版 |
2024/03/12(火) 22:10:08.06ID:Uh71kCat
別にコードビハインドで良いじゃん、使う側わ知ったもんじゃないよ。
2024/03/12(火) 22:32:52.40ID:EGXHS4/c
このスレの連中がいつまで経ってもコードビハインド論争してる時点でmicrosoftのmvvm推しが大失敗なのは言うまでも無い
ビヘービアなりトリガーアクションなりのアドバイスすら誰も出来ねえんだもん
終わってるよ
2024/03/12(火) 23:14:00.16ID:sVxHin9O
まあ結局コードビハインドにガッツリイベントハンドラ書くのがベストって結論出てるわな
どうせビジネスロジックは別クラスなんだし
MVVMは結局コードが爆発的に増えて本末転倒
2024/03/13(水) 09:36:12.76ID:wefPK65v
>>コードビハインドは使用禁止

諸悪の根元
誰が言ったか
全てはこれから始まった
395デフォルトの名無しさん
垢版 |
2024/03/13(水) 10:20:38.22ID:sxGi6gEp
むしろViewがViewを開く話なんてVMがまったく預かり知らなくていいことだし、むしろ知ってはいけないことでは?
2024/03/13(水) 22:38:50.52ID:zeyBTnCB
WinUIですが
ViewModelのプロパティの値によって表示する
コントロールを切り替えるのはどうすればいいでしょうか
2024/03/13(水) 22:42:48.47ID:zeyBTnCB
例えば、そのプロパティの型は列挙型とします
まぁbool型でもいいですが

とりあえず必要なコントロールをcollapsedで非表示にして
BoolToVisibilityConverterで1つ制御?
2024/03/14(木) 00:11:12.71ID:YGbJEKVm
WinUI は DataTrigger ないんだっけか。
↓こんな感じのコンバーター作るとか?

public abstract class EqualsConverter<T> : IValueConverter
{
public EqualsConverter(T trueValue, T falseValue)
{
TrueThen = trueValue;
FalseThen = falseValue;
}

public T TrueThen { get; set; }
public T FalseThen { get; set; }

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
=> object.Equals(value, parameter) ? TrueThen : FalseThen;

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
=> throw new NotImplementedException();
}

public sealed class EqualsToVisibilityConverter : EqualsConverter<Visibility>
{
public EqualsToVisibilityConverter() : base(Visibility.Visible, Visibility.Collapsed)
{
}

public EqualsToVisibilityConverter(Visibility trueValue, Visibility falseValue) : base(trueValue, falseValue)
{
}
}
2024/03/14(木) 00:12:52.67ID:YGbJEKVm
使い方:

<Page.Resources>
<conv:EqualsToVisibilityConverter x:Key="EqualsThenVisible" />
<conv:EqualsToVisibilityConverter
x:Key="EqualsThenCollapsed"
TrueThen="Collapsed"
FalseThen="Visible" />
</Page.Resources>

<TextBox Visibility="{Binding ControlType, Converter={StaticResource EqualsThenVisible}, ConverterParameter={x:Bind namespace:ControlType.Text}}" />
<ComboBox Visibility="{Binding ControlType, Converter={StaticResource EqualsThenVisible}, ConverterParameter={x:Bind namespace:ControlType.Select}}" />
2024/03/14(木) 00:59:55.46ID:HT+2FBc/
WinUIはコンバーターも使えるけど、スタティックなメソッド作って値のコンバートする方が良いよ
コンバーターと違って型チェックもやってくれる

https://learn.microsoft.com/ja-jp/windows/uwp/data-binding/function-bindings
2024/03/14(木) 18:54:54.11ID:awMyQery
>>399
ありがとございます
ただ、単純なコントロールならいいんですが切り替えたいのが複雑なコントロールツリーなんです
要するに画面レイアウトごと切り替えるイメージです
その場合はCollapsedで見えないけどメモリ上にはある?のでよくない?
2024/03/14(木) 18:57:46.12ID:awMyQery
>>400
x:Bindだとコンバーターわざわざ作らなくていいんですね
ただ、onewayとかにするとめんどくさいんですかね

後x:Bindは検証してませんがメモリリークどうこうとかあってうーん
https://github.com/microsoft/microsoft-ui-xaml/issues/7282
2024/03/14(木) 22:00:35.91ID:YGbJEKVm
TabView 使えばいいんじゃないかな
404デフォルトの名無しさん
垢版 |
2024/03/14(木) 22:54:09.64ID:kLN7FaI/
根本的な設計が間違ってるに一票
2024/03/14(木) 23:28:34.59ID:kXnu57YL
エクスプローラみたいのを作りたいんか?
ざっくりアイコンビューみたいのと詳細ビューを切り替えとか

それとも違うのか?
406デフォルトの名無しさん
垢版 |
2024/03/15(金) 06:36:24.00ID:n9fiX3XY
v7.0.0で、WinUICommunity Templatesがようやく使えるしろものになったかな?
フレームコンテンツ作成で
System.Runtime.InteropServices.COMException (0x8000FFFF): 致命的なエラーです。 (HRESULT からの例外:0x8000FFFF (E_UNEXPECTED))
が出るが、とりあえずは動かせるので進歩したようだ。
2024/03/15(金) 10:12:34.11ID:r4OsPqSJ
ダイアログのようにVMからVを操作したければサービスを作ってVからVMにインジェクションすれば良い
知らずにイキっている彼が惨めだ
2024/03/15(金) 11:16:22.89ID:OBIsoOBb
>>407
その手間が阿呆らしいと言われてる事に気づきたいものである
409デフォルトの名無しさん
垢版 |
2024/03/15(金) 11:17:02.37ID:I1QcrsU/
VMからVを操作したいという設計がアウトだろw
2024/03/15(金) 12:02:09.13ID:MChK0tzU
VMとVとか中途半端な概念つくって実装破綻する阿呆
2024/03/15(金) 12:19:34.67ID:eZW8M4iC
VMをなくした場合テストコードってどうするの?
書かない?
2024/03/15(金) 12:59:48.28ID:McMWG0Vb
自動テストやってるプロジェクト見た事ないな。
SIerはどこもExcelでケース書いて手動でテストしてエビデンスでスクショ取ってた。
2024/03/15(金) 13:04:39.74ID:r4OsPqSJ
>>408
サービスは使いまわしできるから大した手間じゃない
2024/03/15(金) 13:07:54.74ID:MChK0tzU
>>412
Reactとかだとままある
2024/03/15(金) 13:40:36.22ID:eZW8M4iC
>>412
それって修正の度に過去のも含めて毎回やるの?形骸化しない?

テストコードを書くことで DI や MVVM の利点が理解できたし、
テストコードを書くことでミスに気づいたりより良い実装にできたりって経験が何度もあるから、
個人的にはテスト書かないのはあり得ないな。
2024/03/15(金) 14:24:47.78ID:McMWG0Vb
>>415
修正に関係した箇所しかテストしないところが殆どだよ。
個人的には自動化したほうがいいと思うけど、
低レベルなエンジニアだとテストコード自体にバグがある事も多いし、SIerのレビュアーはコードが読めない人が多いからスクショを欲しがるんだよ。
2024/03/15(金) 15:29:58.80ID:MChK0tzU
SIerのレビュアーは
受け入れテストだろうから
単体テストは受け取らないのでは?
基本UIテストが基本だろ
理屈でねじ伏せて単体テストで押し切れないかぎりは
2024/03/15(金) 19:50:46.10ID:eZW8M4iC
UIテストはやるっちゃやるけどわざわざスクショは取ってないな
やりましたよー嘘はついてないんで信じてください、で
2024/03/15(金) 21:27:44.49ID:cF/fCSwm
納品の単位がクラスや関数でない限り
テストはUIテストやで
無論納品物はテストデータとUIキャプチャーみたいな
このあたりもReact界隈では自動テストがちらほら見られる
2024/03/15(金) 23:32:19.58ID:gbQQtayq
>>408
たしかに Dependency Inversion は一手間かかるがそれを阿呆らしいとしか感じられないのであれば残念
2024/03/16(土) 00:45:18.98ID:Uhv60CWW
Injection じゃ?
2024/03/16(土) 02:04:03.40ID:75FjIr1W
silverLightがポシャった時代から
まじでなにも代わってない...
2024/03/17(日) 09:42:36.14ID:mB4AOeXd
MVVMで開発
hyperlinkをクリックしたらpopupが表示される
というのはviewだけで完結するから、popupのisopenは hyperlinkのclickイベントをコードビハインドで書くべき?popupの状態を保持してなにかを動かすなどの処理はない
2024/03/17(日) 09:45:08.38ID:mB4AOeXd
変な日本語だった

popup.isopenは hyperlinkのclickイベント(コードビハインド)で書くべき?
2024/03/17(日) 10:15:24.14ID:x8VC44Gx
その開いた画面でデータ修正するとどうなる?
426デフォルトの名無しさん
垢版 |
2024/03/18(月) 20:29:45.91ID:GPnxxBJp
そんなんで悩むくらいならmvvmで書けばいいんじゃね
コードビハインドにしたくなったらいつでも変えられるでしょ
2024/03/20(水) 00:57:48.10ID:b3LGPfrH
>>425
ありがとう
2024/03/20(水) 00:58:27.51ID:b3LGPfrH
アンカー間違えた
>>426
ありがとう
429デフォルトの名無しさん
垢版 |
2024/03/26(火) 17:16:47.74ID:0f2Qo6r6
clickoneceで公開できないあたりがもうゴミだわなぁ
2024/03/26(火) 21:02:51.23ID:hrjK7SMo
https://github.com/microsoft/microsoft-ui-xaml/discussions/9417
MicrosoftのUIフレームワークはひどすぎる
MAUIでも前に爆発してたよな
2024/03/26(火) 21:05:25.46ID:hrjK7SMo
https://github.com/dotnet/wpf/pull/8870
To be honest it looks like the code from WPFUI was copied without much quality control.

WPFのwindows 11themeの方も大丈夫なのかね
2024/03/26(火) 22:20:48.99ID:5DqAkGe7
>>430
>How can it be possible that MS is investing 20 times more effort into MAUI than into WinUI3

20倍!
MAUI始まったーーー!
2024/03/26(火) 22:30:25.34ID:oEfu3HhX
WinUI3死んじゃうの
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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