!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part148
https://mevius.5ch.net/test/read.cgi/tech/1590578921/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part149
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワキゲー MMca-Gz4g)
2020/12/16(水) 11:29:35.35ID:TSvQ057dM229デフォルトの名無しさん (アウアウウー Sa4b-eWVF)
2021/01/23(土) 11:08:23.02ID:RBvwbRsVa 自分の製品置き換えないでユーザーにそれ使えは言えないだろ
230デフォルトの名無しさん (ワントンキン MM3f-+HhN)
2021/01/23(土) 11:15:07.48ID:BdQtbmnfM ちなみにOutlookもWeb版に統一する計画だそうで
https://www.windowscentral.com/project-monarch-outlook-web-universal-email-client-microsoft?amp
https://www.windowscentral.com/project-monarch-outlook-web-universal-email-client-microsoft?amp
231デフォルトの名無しさん (ワッチョイ df2d-Woof)
2021/01/23(土) 11:15:50.54ID:0Lxv01Qk0 VSCode以外はバックエンドはクラウドだな
232デフォルトの名無しさん (ワンミングク MM3f-+HhN)
2021/01/23(土) 11:26:24.50ID:+GqnBbRoM 今時完全にスタンドアロンなアプリなんて絶滅危惧種でしょ
そもそもそれ言い出したらWinRTから始まりWinUI含め近年迷走を続けているWindowsのモダンUIって、
どうせ今時のネイティブアプリなんてバックエンドのWebサービスに対する薄い皮にすぎないんだからシンプルな必要最低限の機能があればいいよね、
という思想が根底にあるのだし
そもそもそれ言い出したらWinRTから始まりWinUI含め近年迷走を続けているWindowsのモダンUIって、
どうせ今時のネイティブアプリなんてバックエンドのWebサービスに対する薄い皮にすぎないんだからシンプルな必要最低限の機能があればいいよね、
という思想が根底にあるのだし
233デフォルトの名無しさん (アウアウエー Sa1f-j2E3)
2021/01/23(土) 11:53:22.54ID:3u/wIwRAa reactive extensionってまだ存命なの?
async awaitだけやっとけばいい感じ?
async awaitだけやっとけばいい感じ?
234デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/23(土) 12:06:47.52ID:hIt2ZLZ60 >>228
じゃあやっぱりelectronのことを言っているのか。
デスクトップアプリをこれから開発しようという時にFormsやWPFと同列に
electronが選択肢に挙がる?
前にやったことがあるけど、クロスプラットフォームにしたいとかどうしても
使いたいjsフレームワークがあるとかの理由でもなけりゃ、面倒くさすぎて
今のままじゃわざわざ使いたいとは思わなかったが。
じゃあやっぱりelectronのことを言っているのか。
デスクトップアプリをこれから開発しようという時にFormsやWPFと同列に
electronが選択肢に挙がる?
前にやったことがあるけど、クロスプラットフォームにしたいとかどうしても
使いたいjsフレームワークがあるとかの理由でもなけりゃ、面倒くさすぎて
今のままじゃわざわざ使いたいとは思わなかったが。
235デフォルトの名無しさん (ワッチョイ c701-xA1r)
2021/01/23(土) 12:11:41.19ID:2Kl/0dQh0 普通にレイアウト強化したwinform2でも出してくれたら良かったのにな
webは別でやればいいのになんでくっつけようとするんだろう
webは別でやればいいのになんでくっつけようとするんだろう
236デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/23(土) 13:18:57.65ID:LnVZ1o8ia237デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/23(土) 13:38:17.35ID:A5DB0QkA0 >>234
electron選択肢に上がるけどな。
C#アプリでも、もうすぐWebView2が出るから楽しみに待ってるぞ。
なんだかんだでだんだんリッチなUIが求められるようになってるし、ブラウザコンポーネントでやるのは合理的だと思ってる。
枯れてきて安定もしてるし充分速いしな。
最近UIをブラウザで作ること多いけどなかなか便利よ。
embedIOでサーバ起こして、Process.startで開くとかやったり。
Xamarinに持ってったときも一切変更せずにAndroid側でWebView貼り付けて終わりにできたし。
electron選択肢に上がるけどな。
C#アプリでも、もうすぐWebView2が出るから楽しみに待ってるぞ。
なんだかんだでだんだんリッチなUIが求められるようになってるし、ブラウザコンポーネントでやるのは合理的だと思ってる。
枯れてきて安定もしてるし充分速いしな。
最近UIをブラウザで作ること多いけどなかなか便利よ。
embedIOでサーバ起こして、Process.startで開くとかやったり。
Xamarinに持ってったときも一切変更せずにAndroid側でWebView貼り付けて終わりにできたし。
238デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 13:58:24.89ID:4VL29Q1J0239デフォルトの名無しさん (ワッチョイ 8724-BbFI)
2021/01/23(土) 15:17:23.23ID:2XdYRaxf0 Electronって.NET Coreの自前完結みたいにちょっとしたGUIアプリでも100MBくらいになるのは避けられないの?
240デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/23(土) 15:23:50.73ID:A5DB0QkA0 >>239
これ辛いよね。
これ辛いよね。
241デフォルトの名無しさん (ワッチョイ 5f61-1UlN)
2021/01/23(土) 15:32:23.82ID:M9OdZ2iK0 Electron用にパッチをあてたchromiumを含んでるから仕方ないね
node.js系はflockすら標準機能に無いのがもにょる
node.js系はflockすら標準機能に無いのがもにょる
242デフォルトの名無しさん (ワッチョイ 2778-Jq7D)
2021/01/23(土) 15:38:16.51ID:A4wCeRTc0 edgeがchromium採用しているからそれを流用することって出来ないのかね
243デフォルトの名無しさん (ワッチョイ bf8c-WIH3)
2021/01/23(土) 15:54:08.79ID:rSxKixC+0 msの人がwebview2使ったelectronもどき作ってた記憶あるけど忘れた
244デフォルトの名無しさん (ワッチョイ 077b-AH3V)
2021/01/23(土) 16:18:50.61ID:XGqYtf2f0 何のスレだよここ
245デフォルトの名無しさん (ワッチョイ 5f79-JoqA)
2021/01/23(土) 16:25:03.06ID:kfSEiVWz0 >100MB
○avaみたいにランタイム別インスコよりは1つのEXEになってた方がマシ
○avaみたいにランタイム別インスコよりは1つのEXEになってた方がマシ
246デフォルトの名無しさん (ワッチョイ 7fb5-MWrm)
2021/01/23(土) 16:50:48.24ID:MyEcyelN0247デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/23(土) 16:56:04.81ID:XHKedqhC0248デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/23(土) 17:08:24.40ID:hIt2ZLZ60 周りの部署や付き合いのある外注はみんな「ふつーWPF」って感じなんだが、
2chでだけいまだにこんなにFormsにこだわってる人を見かけるのがすごく不思議な感覚。
2chでだけいまだにこんなにFormsにこだわってる人を見かけるのがすごく不思議な感覚。
249デフォルトの名無しさん (ワンミングク MMfb-+HhN)
2021/01/23(土) 17:30:20.73ID:RC6F3sECM >>248
WPFも十分レガシーだよ
WPFも十分レガシーだよ
250デフォルトの名無しさん (ワッチョイ 7fb5-MWrm)
2021/01/23(土) 17:30:28.90ID:MyEcyelN0 >>247
わざとやってるのかもね
MS社員が今年の目標として「新規に○○の機能を実装する!」とか掲げて、
クソ機能を実装して今年のノルマ達成、とかね
俺らからしたら大きなお世話なんだけどな
XAMLが絡むGUIの部分はそんな気がする
C#の言語仕様自体は良い具合に他言語の良いとこ取りしてて結構好きなんだけどな
わざとやってるのかもね
MS社員が今年の目標として「新規に○○の機能を実装する!」とか掲げて、
クソ機能を実装して今年のノルマ達成、とかね
俺らからしたら大きなお世話なんだけどな
XAMLが絡むGUIの部分はそんな気がする
C#の言語仕様自体は良い具合に他言語の良いとこ取りしてて結構好きなんだけどな
251デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/23(土) 17:54:40.45ID:LhKkB5Axa MSも子供の遊びじゃないんだからそんな幼稚な動機があるはずがないw
Silverlightは別物としてもWPF, Metro UI, UWPがコケた理由は単純に人、時間、金の投入量をケチって
周到さが足りなかったからだと思うよ。
Win32を作った時ぐらい気合を入れてたらもう少しマシなものが出来てたはず。
.NETやC#にも多少そういうところがあったよね。
頑張ればC#3(VS2008)を最初のバージョンにすることも出来たんじゃないか
どうでもいいけど「スレの趣旨と違う話をするな!」って人が現れないのは
きっとその人も話題に参加してるからだろうねw
言っても無駄だと思うけどそういうご都合主義を反省して欲しいよね
Silverlightは別物としてもWPF, Metro UI, UWPがコケた理由は単純に人、時間、金の投入量をケチって
周到さが足りなかったからだと思うよ。
Win32を作った時ぐらい気合を入れてたらもう少しマシなものが出来てたはず。
.NETやC#にも多少そういうところがあったよね。
頑張ればC#3(VS2008)を最初のバージョンにすることも出来たんじゃないか
どうでもいいけど「スレの趣旨と違う話をするな!」って人が現れないのは
きっとその人も話題に参加してるからだろうねw
言っても無駄だと思うけどそういうご都合主義を反省して欲しいよね
252デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/23(土) 17:58:02.93ID:LhKkB5Axa 思えば、Vistaの時にWinFSなるものがとん挫する事件があったけど
あのあたりからMSはちょっとおかしくなってる気がするね。
あのあたりからMSはちょっとおかしくなってる気がするね。
253デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/23(土) 18:06:49.31ID:hIt2ZLZ60 >>249
その「レガシー」ってどういう意味で言ってるんだろうか。
今デスクトップアプリ開発するのにWPFに替わるものが他にあるということかねぇ。
上で誰かが言っていたElectronもうちの周りじゃあ1プロジェクトくらいしか採用していないが。
その「レガシー」ってどういう意味で言ってるんだろうか。
今デスクトップアプリ開発するのにWPFに替わるものが他にあるということかねぇ。
上で誰かが言っていたElectronもうちの周りじゃあ1プロジェクトくらいしか採用していないが。
254デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 18:12:08.90ID:4VL29Q1J0 >>246,250
> 〇〇の場合は方法1、△△の場合は方法2、みたいに場合分けがあるから分かりにくい
違う、〇〇は方法1でもできるし方法2でもできる、△△は方法3と方法4でできる
って言うのがまずいって思ってる
具体的には個人的にはWPFはデータ・バインディングとコマンドでやるべきだと思うけど、WinFormからの移行のためかボタンに名前付けてコードから参照するとかコードのイベントハンドラをxamlで指定するとかもできる
できるのはいいんだけどWeb上の解説も両方が説明されてたり下手すると混在して使用されてたりしてわかりにくくなってるような気がする
> 〇〇の場合は方法1、△△の場合は方法2、みたいに場合分けがあるから分かりにくい
違う、〇〇は方法1でもできるし方法2でもできる、△△は方法3と方法4でできる
って言うのがまずいって思ってる
具体的には個人的にはWPFはデータ・バインディングとコマンドでやるべきだと思うけど、WinFormからの移行のためかボタンに名前付けてコードから参照するとかコードのイベントハンドラをxamlで指定するとかもできる
できるのはいいんだけどWeb上の解説も両方が説明されてたり下手すると混在して使用されてたりしてわかりにくくなってるような気がする
255デフォルトの名無しさん (ワッチョイ a733-Vkx9)
2021/01/23(土) 18:46:38.00ID:NjLwKFuQ0 >>254
その割には外部フレームワークを入れないといろいろ不便なのがね..。
例えばBindableBase程度のものはMSで準備して欲しかった。
ViewModelは通常このクラスをベースにして...という基本的なスタンスだったらもっと分かりやすかったと思う。
その割には外部フレームワークを入れないといろいろ不便なのがね..。
例えばBindableBase程度のものはMSで準備して欲しかった。
ViewModelは通常このクラスをベースにして...という基本的なスタンスだったらもっと分かりやすかったと思う。
256デフォルトの名無しさん (ワッチョイ 5f42-xA1r)
2021/01/23(土) 19:41:56.19ID:J/sR9Yyb0 >>255
Microsoft.Toolkit.MvvmってのがWindowsCommunityToolkitの一部としてもう直ぐ出るらしい
Microsoft.Toolkit.MvvmってのがWindowsCommunityToolkitの一部としてもう直ぐ出るらしい
257デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 20:54:43.81ID:4VL29Q1J0258デフォルトの名無しさん (テテンテンテン MM8f-h15D)
2021/01/23(土) 21:19:01.64ID:88Ok/30EM259デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/23(土) 21:26:16.24ID:XHKedqhC0 データバインディング使わないほうがうまくいくことが多いよな
260デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 22:15:59.95ID:4VL29Q1J0 >>259
データバインディング使わない方が簡単なのは認めるけどうまく行かないのはお前さんの能力かと…
データバインディング使わない方が簡単なのは認めるけどうまく行かないのはお前さんの能力かと…
261デフォルトの名無しさん (ワッチョイ 7fb5-MWrm)
2021/01/23(土) 22:17:01.87ID:MyEcyelN0 >>254
いや、あるでしょ
例えば、CLRプロパティと依存関係プロパティはどう?
それと、
>〇〇は方法1でもできるし方法2でもできる、△△は方法3と方法4でできる
>って言うのがまずいって思ってる
それって、
△△は方法1と方法2じゃ出来ないんだよな?
〇〇は方法3と方法4じゃ出来ないんだよな?
俺はそれがまずいと思ってる
〇〇が方法1でも方法2でも最終的に可能になるなら別に構わないんじゃないか?何が問題?
逆に、〇〇を解決しようと思って方法3で始めたが、後々になって方法1か方法2でしか出来ないことが判明した方が痛い
いや、あるでしょ
例えば、CLRプロパティと依存関係プロパティはどう?
それと、
>〇〇は方法1でもできるし方法2でもできる、△△は方法3と方法4でできる
>って言うのがまずいって思ってる
それって、
△△は方法1と方法2じゃ出来ないんだよな?
〇〇は方法3と方法4じゃ出来ないんだよな?
俺はそれがまずいと思ってる
〇〇が方法1でも方法2でも最終的に可能になるなら別に構わないんじゃないか?何が問題?
逆に、〇〇を解決しようと思って方法3で始めたが、後々になって方法1か方法2でしか出来ないことが判明した方が痛い
262デフォルトの名無しさん (ワッチョイ e7c3-KQEQ)
2021/01/23(土) 22:27:19.36ID:H8XCArTD0 asp.netでデスクトップソフト開発ってどうなんだろうか
263デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/23(土) 22:37:04.28ID:XHKedqhC0264デフォルトの名無しさん (ワッチョイ 5f42-xA1r)
2021/01/23(土) 23:15:35.62ID:J/sR9Yyb0 WinUI3というかUWPではバインディングが改良されて
コンパイル時に厳密な方チェックやってくれてバグに悩まずに済む
コンパイル時に厳密な方チェックやってくれてバグに悩まずに済む
265デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 23:30:17.78ID:4VL29Q1J0266デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 23:31:10.83ID:4VL29Q1J0 >>264
そう言うのもWPFに還元して欲しいね
そう言うのもWPFに還元して欲しいね
267デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 00:29:30.39ID:H0Ke+o4H0 >>265
あったまわりぃなお前
データバインディングしてる変数に間違ったデータが入るようにしちゃって大丈夫か?
開始日と終了日に2000年1月1日が入ってるときに
開始日に2021年を入力したとき最大期間に反応してエラー出すだろ?
ここでエラーを出さなかったらバインドしてるGUIがおかしくなる
したらどうやって開始日と終了日に2021年を設定するんだよ
あったまわりぃなお前
データバインディングしてる変数に間違ったデータが入るようにしちゃって大丈夫か?
開始日と終了日に2000年1月1日が入ってるときに
開始日に2021年を入力したとき最大期間に反応してエラー出すだろ?
ここでエラーを出さなかったらバインドしてるGUIがおかしくなる
したらどうやって開始日と終了日に2021年を設定するんだよ
268デフォルトの名無しさん (ワッチョイ a733-Vkx9)
2021/01/24(日) 02:30:17.53ID:W8Ofgakl0 >>267
InotifyDataErrorInfoなどを使う場合、実装方法にもよるけど、間違った値や無効な値を保持する設計もおかしくないと思う。保持はするがエラーが発生しているという状態で、そのエラー内容を素直にViewが表示する設計。
逆にViewModelには正しい値しか保持しないとした場合、一時的にViewとViewModelで不整合が生じている状態になりますが、皆さんどのようにされてますか?
InotifyDataErrorInfoなどを使う場合、実装方法にもよるけど、間違った値や無効な値を保持する設計もおかしくないと思う。保持はするがエラーが発生しているという状態で、そのエラー内容を素直にViewが表示する設計。
逆にViewModelには正しい値しか保持しないとした場合、一時的にViewとViewModelで不整合が生じている状態になりますが、皆さんどのようにされてますか?
269デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 08:01:29.17ID:H0Ke+o4H0270デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/24(日) 08:34:20.11ID:G9QcBvFS0 >>267
想像以上にレベルが低かったw
なんでvalidateの仕組みがないと思った?
https://docs.microsoft.com/ja-jp/archive/msdn-magazine/2010/june/msdn-magazine-input-validation-enforcing-complex-business-data-rules-with-wpf
まあ、validateは色々なやり方あるし相互依存とかむっちゃ面倒になったりするからWPFも結構難しくて>>267あたりだと理解できないかもな
想像以上にレベルが低かったw
なんでvalidateの仕組みがないと思った?
https://docs.microsoft.com/ja-jp/archive/msdn-magazine/2010/june/msdn-magazine-input-validation-enforcing-complex-business-data-rules-with-wpf
まあ、validateは色々なやり方あるし相互依存とかむっちゃ面倒になったりするからWPFも結構難しくて>>267あたりだと理解できないかもな
271デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 08:39:49.42ID:H0Ke+o4H0 >>270
エアプ乙
エアプ乙
272デフォルトの名無しさん (ドコグロ MM1f-Wxou)
2021/01/24(日) 08:58:35.15ID:OUhuYnVtM >>268
自前でエラー内容を保持するしかないように思う
http://sourcechord.はてなブログ.com/entry/2014/06/08/123738
個人的にはViewModelに不正な値を入れるのは気持ち悪い
>>269,271
そろそろ黙った方がいいと思うよ
顔真っ赤すぎだろw
自前でエラー内容を保持するしかないように思う
http://sourcechord.はてなブログ.com/entry/2014/06/08/123738
個人的にはViewModelに不正な値を入れるのは気持ち悪い
>>269,271
そろそろ黙った方がいいと思うよ
顔真っ赤すぎだろw
273デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 09:06:53.70ID:H0Ke+o4H0 データバインディング使うのやめろやw
274デフォルトの名無しさん (スププ Sd7f-QXKr)
2021/01/24(日) 09:20:23.60ID:EJajcfhwd わざと新しい難解な方法を作ってるって発想はすげえな。
新しい方法使ってみたらわかるけど、なるほど、一部の課題は解決したな、みたいな感じになるだろうに。
新しい方法使ってみたらわかるけど、なるほど、一部の課題は解決したな、みたいな感じになるだろうに。
275デフォルトの名無しさん (スププ Sd7f-QXKr)
2021/01/24(日) 09:22:49.58ID:EJajcfhwd ViewModelはModelではないんだから、別にエラーが入ろうが何でも良いだろ。
ViewModelからModelにするときにまとめてValidationしてるけど。
そうじゃないとそれこそ依存項目のチェックが出来んじゃん。
ViewModelとしてModelを使おうとするから変な話になるんじゃないの?
ViewModelからModelにするときにまとめてValidationしてるけど。
そうじゃないとそれこそ依存項目のチェックが出来んじゃん。
ViewModelとしてModelを使おうとするから変な話になるんじゃないの?
276デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 09:33:19.71ID:H0Ke+o4H0 >>274
でもさ1つの値でうまくいってても他と絡みだすとそれじゃうまくいかんのよ
開始日と終了日は一例ね
ベース値と複数の差分値で表現してるものもうまく行かない
将来的になにかの値と関連する可能性があるならこの仕組みは入れないほうがいいかも?
データバインドっていう複数の値が連動するときにこそ役に立つ仕組みと思いきや実は鬼門とかいうおマヌケなお話(笑)
でもさ1つの値でうまくいってても他と絡みだすとそれじゃうまくいかんのよ
開始日と終了日は一例ね
ベース値と複数の差分値で表現してるものもうまく行かない
将来的になにかの値と関連する可能性があるならこの仕組みは入れないほうがいいかも?
データバインドっていう複数の値が連動するときにこそ役に立つ仕組みと思いきや実は鬼門とかいうおマヌケなお話(笑)
277デフォルトの名無しさん (ワッチョイ 5f42-xA1r)
2021/01/24(日) 11:17:06.24ID:9PCPJHwQ0278デフォルトの名無しさん (ワッチョイ 5f90-Woof)
2021/01/24(日) 11:20:17.45ID:+fPfkl180 >データバインディングしてる変数に間違ったデータが入るようにしちゃって大丈夫か?
大丈夫だろ
ビューモデルはあくまでビューの状態を表すんだから、ビュー(UI)の方で一時的に開始日と終了日が
ずれてもOKで別途最終確定ボタンみたいなUIを作るなら、
開始日と終了日の関係がずれた値(状態)になってもそれは
ビューモデル的には正しい値だぞ
モデル的には間違った値だけど
ちゃんと区別しよう
大丈夫だろ
ビューモデルはあくまでビューの状態を表すんだから、ビュー(UI)の方で一時的に開始日と終了日が
ずれてもOKで別途最終確定ボタンみたいなUIを作るなら、
開始日と終了日の関係がずれた値(状態)になってもそれは
ビューモデル的には正しい値だぞ
モデル的には間違った値だけど
ちゃんと区別しよう
279デフォルトの名無しさん (ワッチョイ 275f-rvE3)
2021/01/24(日) 11:25:48.71ID:wSlEv8S70 >>251
>WPF, Metro UI, UWPがコケた理由は単純に人、時間、金の投入量をケチって周到さが足りなかったからだと思うよ
いや
センスが無いだけだよ
どれだけリソース有っても創れない
あいつらの限界
>WPF, Metro UI, UWPがコケた理由は単純に人、時間、金の投入量をケチって周到さが足りなかったからだと思うよ
いや
センスが無いだけだよ
どれだけリソース有っても創れない
あいつらの限界
280デフォルトの名無しさん (ワッチョイ 5f90-Woof)
2021/01/24(日) 11:33:52.77ID:+fPfkl180 ビューモデルはあくまでビューの状態を表すように設計するんだぞ
最終的なモデルの状態に不整合があったらまずいが、
ビューモデルはあくまでもビューの状態を表すんだから、一時的に不整合を許すUIを
設計するなら、ビューモデルもそういう状態になるだけだし
ビューモデルからしたら別に間違った状態じゃない
だから、
>逆にViewModelには正しい値しか保持しないとした場合、一時的にViewとViewModelで不整合が生じている状態になりますが、皆さんどのようにされてますか?
とか、前提がおかしいやろ。ビューの状態を表すようにViewModelつくるのに不整合を生じるようにつくるとか意味がわからん
最終的なモデルの状態に不整合があったらまずいが、
ビューモデルはあくまでもビューの状態を表すんだから、一時的に不整合を許すUIを
設計するなら、ビューモデルもそういう状態になるだけだし
ビューモデルからしたら別に間違った状態じゃない
だから、
>逆にViewModelには正しい値しか保持しないとした場合、一時的にViewとViewModelで不整合が生じている状態になりますが、皆さんどのようにされてますか?
とか、前提がおかしいやろ。ビューの状態を表すようにViewModelつくるのに不整合を生じるようにつくるとか意味がわからん
281デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 11:47:47.30ID:H0Ke+o4H0 >>278
それデータバインドいらないよねって言ってるよね?
それデータバインドいらないよねって言ってるよね?
282デフォルトの名無しさん (ワッチョイ 5f90-Woof)
2021/01/24(日) 12:13:40.42ID:+fPfkl180 ビューモデルに他にもテストしやすいとか利点あるだろ?
つか、数学じゃないから誰がもが納得する100%の
答えなんてないから君がそう思うならそう思えばいいと思う
つか、数学じゃないから誰がもが納得する100%の
答えなんてないから君がそう思うならそう思えばいいと思う
283デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 12:18:43.65ID:H0Ke+o4H0 データバインド捨てちゃえよ
楽になるぞw
楽になるぞw
284デフォルトの名無しさん (ワッチョイ 7fbb-NoAX)
2021/01/24(日) 12:28:41.42ID:Mt48K89t0 MVVMがどうのって、今話題のMVUの話題絡みで出てきたのかと思いきや・・・・・なんも関係なかったぜ
285デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 13:48:48.78ID:3jwmj/rb0286デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 14:24:10.62ID:H0Ke+o4H0 >>285
そうやってエアプでできるできる言いたいなら言ってろ
そうやってエアプでできるできる言いたいなら言ってろ
287デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 14:40:58.72ID:3jwmj/rb0 >>286
エアプというか…普段使ってるから自信を持って出来ると言えるんだけど。
別にWPFだけではなくて、他のプラットフォームでもViewModel使ってるぞ。
自分に出来ないからといって、みんな出来ないのに出来るってフカしてると思い込むのは良くないんじゃないか?
複数の値が連動するときにこそ役立ってると思うんだが。違うのか?
鬼門だと一切思わん。
将来的に何か他の値と関連する可能性があるなら尚更じゃん。
なんでViewModelでエラーを表示してる状態が不整合なのか俺には全然わからん。
エアプというか…普段使ってるから自信を持って出来ると言えるんだけど。
別にWPFだけではなくて、他のプラットフォームでもViewModel使ってるぞ。
自分に出来ないからといって、みんな出来ないのに出来るってフカしてると思い込むのは良くないんじゃないか?
複数の値が連動するときにこそ役立ってると思うんだが。違うのか?
鬼門だと一切思わん。
将来的に何か他の値と関連する可能性があるなら尚更じゃん。
なんでViewModelでエラーを表示してる状態が不整合なのか俺には全然わからん。
288デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 14:50:18.37ID:H0Ke+o4H0289デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:02:34.21ID:3jwmj/rb0 >>288
普通に入力可能にして、エラーメッセージの表示条件が、開始日>終了日であること。
保存チェックはエラーメッセージが一切表示されていない事。Modelには一切波及せずViewModelで完結する。
仮保存のみOK。仮保存はViewModelのうちシリアライズしてはいけない項目を殺して保存。
入力中に一時的に入れ替わるなんてよくある事なんだから、いちいち選択不可にしてたらユーザビリティ悪すぎでしょ。
開始日がデフォルトで今日〜空白の時に、一昨日から昨日までの値を入れるのに、いちいち開始日から入力させんの?アホらしいじゃん。
入れ替わった時点でエラーメッセージに「開始日と終了日が入れ替わっています」と出しておけば一発でしょ。ついでに保存ボタンのEnabledも変えとくと親切だな。
エラーメッセージも、保存ボタンのEnabledも、両方ともプロパティにバインドしとけば、値を変えるだけで制御も変わる。便利よね。
普通に入力可能にして、エラーメッセージの表示条件が、開始日>終了日であること。
保存チェックはエラーメッセージが一切表示されていない事。Modelには一切波及せずViewModelで完結する。
仮保存のみOK。仮保存はViewModelのうちシリアライズしてはいけない項目を殺して保存。
入力中に一時的に入れ替わるなんてよくある事なんだから、いちいち選択不可にしてたらユーザビリティ悪すぎでしょ。
開始日がデフォルトで今日〜空白の時に、一昨日から昨日までの値を入れるのに、いちいち開始日から入力させんの?アホらしいじゃん。
入れ替わった時点でエラーメッセージに「開始日と終了日が入れ替わっています」と出しておけば一発でしょ。ついでに保存ボタンのEnabledも変えとくと親切だな。
エラーメッセージも、保存ボタンのEnabledも、両方ともプロパティにバインドしとけば、値を変えるだけで制御も変わる。便利よね。
290デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:03:44.94ID:3jwmj/rb0 まさか今どきエラー項目をダイアログ表示するとかいう発想じゃ無いだろうな…。
291デフォルトの名無しさん (ワッチョイ bfda-p6MY)
2021/01/24(日) 15:04:38.53ID:F+2F2LGq0 >>289
それがVMの役割だよなぁ
VMはViewの値をバインドしてるんだから、どんな値だろうと関係ない。
VMにバインドされた値が範囲外なら赤枠などで注意を促し、保存ボタンを押せなくする。
モデルに渡すときに仕様の範囲内であればいい
それがVMの役割だよなぁ
VMはViewの値をバインドしてるんだから、どんな値だろうと関係ない。
VMにバインドされた値が範囲外なら赤枠などで注意を促し、保存ボタンを押せなくする。
モデルに渡すときに仕様の範囲内であればいい
292デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:05:11.26ID:H0Ke+o4H0 え?できたん?
ちょっとよくわからなかったけど
ちょっとよくわからなかったけど
293デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:06:12.10ID:3jwmj/rb0294デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:07:13.99ID:3jwmj/rb0 >>292
何がわからんかった?
何がわからんかった?
295デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:08:16.18ID:H0Ke+o4H0 >>294
え?値が範囲外で保存できちゃう?
え?値が範囲外で保存できちゃう?
296デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:09:00.14ID:3jwmj/rb0 >>295
保存ボタンがDisabledなので保存のしようがないだろ。
保存ボタンがDisabledなので保存のしようがないだろ。
297デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:09:38.35ID:3jwmj/rb0 それでもできる仮保存は、ViewModelの保存であって実データではない。画面保存。
298デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:10:40.00ID:H0Ke+o4H0299デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:11:59.27ID:H0Ke+o4H0300デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:12:28.56ID:3jwmj/rb0 >>298
チェックしてるじゃん。
プロパティが変わるたびにチェックされるよ。
された結果エラーメッセージが確定して、エラーメッセージが確定したら保存ボタンのEnabledが確定するでしょ。
個別のバリデーションは好きにやれば良い。同様にエラーメッセージを吐いとけば、エラーが一つでもあれば保存ボタンがDisabledになるんだから問題無い。
チェックしてるじゃん。
プロパティが変わるたびにチェックされるよ。
された結果エラーメッセージが確定して、エラーメッセージが確定したら保存ボタンのEnabledが確定するでしょ。
個別のバリデーションは好きにやれば良い。同様にエラーメッセージを吐いとけば、エラーが一つでもあれば保存ボタンがDisabledになるんだから問題無い。
301デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:13:36.69ID:3jwmj/rb0302デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:15:55.11ID:3jwmj/rb0 データバインドできるから、画面保存が、不要な項目を殺す程度の実質ただのシリアライズで実現できるんだけどな。
303デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:17:35.09ID:H0Ke+o4H0 開始日、終了日ダイアログボックス表示してOKボタンで値を保存するんです?
304デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:20:53.63ID:3jwmj/rb0 >>303
開始日の横、終了日の横に、エラーメッセージを表示するラベルを置いてバインディング、
必要ならエラー項目は赤地なんかにしてもいい。
HasErrorもあるし、IDataErrorInfoもあるだろ。
好きなクラス作っても構わん。
開始日の横、終了日の横に、エラーメッセージを表示するラベルを置いてバインディング、
必要ならエラー項目は赤地なんかにしてもいい。
HasErrorもあるし、IDataErrorInfoもあるだろ。
好きなクラス作っても構わん。
305デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:23:17.99ID:H0Ke+o4H0 保存とチェックはOKボタン?
306デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:24:54.20ID:H0Ke+o4H0 UNDO UNDO REDO REDO OK?
307デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:27:25.67ID:3jwmj/rb0 チェックは自動。PropertyChanged使ってもいいし、ReactivePropertyでも良い。
保存は保存ボタン。
Undo、RedoはViewModel保存してれば良いじゃん。
保存は保存ボタン。
Undo、RedoはViewModel保存してれば良いじゃん。
308デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:28:32.34ID:H0Ke+o4H0 キャンセルボタンで開始日終了日ダイアログ表示前の値だろ当然
309デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:31:18.19ID:3jwmj/rb0310デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:32:19.23ID:3jwmj/rb0 何?202/01/02って打ったらダイアログ出てきて2020/12/31にゴリ押しで戻されるようなのが良いの?
明らかに1だけ入れたほうが楽じゃん。
明らかに1だけ入れたほうが楽じゃん。
311デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:32:58.24ID:H0Ke+o4H0 え?範囲チェックいつするの?
312デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:33:11.21ID:3jwmj/rb0 >>311
いつでもしてる。
いつでもしてる。
313デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:34:40.08ID:H0Ke+o4H0 じゃあ、エラーでたままを許容するんだ?
314デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:35:20.11ID:3jwmj/rb0 ViewModel使ってないから、プロパティ変更時にチェックかけるって発想が無いんだろうか。
ボタンクリック時に、if(xxx.Value)...ってひたすら列挙してんのかな。
ボタンクリック時に、if(xxx.Value)...ってひたすら列挙してんのかな。
315デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:35:48.04ID:H0Ke+o4H0 その間、GUIのグラフにはどう出しておけばいい?
316デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:37:14.85ID:3jwmj/rb0 >>313
ViewModelが「エラーを表示している」ってのは正常系。
Modelの開始日終了日は一時的にも逆転することは無い。
なぜならViewModelが「エラーを表示している」状態からは、Modelは生成されない。
Modelにエラー出たままは許容しない。
ViewModelにエラーが出てるのは正常系。許容も何もない。
ViewModelが「エラーを表示している」ってのは正常系。
Modelの開始日終了日は一時的にも逆転することは無い。
なぜならViewModelが「エラーを表示している」状態からは、Modelは生成されない。
Modelにエラー出たままは許容しない。
ViewModelにエラーが出てるのは正常系。許容も何もない。
317デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:38:28.95ID:3jwmj/rb0 >>315
そのレンジのグラフを表示するなら「描画できません」一択だろ。
業務アプリなら、画面入力しようとしたら一旦グラフ消すだろうし。
そうしないと、入力中のスクショ送られてきて混乱することになるぞ。
そのレンジのグラフを表示するなら「描画できません」一択だろ。
業務アプリなら、画面入力しようとしたら一旦グラフ消すだろうし。
そうしないと、入力中のスクショ送られてきて混乱することになるぞ。
318デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:40:59.68ID:3jwmj/rb0 入力がおちつくまでグラフを描画しない、をやりたければReactivePropertyの方が楽だな。
319デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:47:17.96ID:H0Ke+o4H0320デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:52:16.29ID:3jwmj/rb0321デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 16:05:06.18ID:3jwmj/rb0 一応言っとくが、びっくり返すのも直接Visibleを変えるんじゃなくて、Visibleにエラーが有るか無いかから算出されるプロパティをバインディングすれば良いからな。
322デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 16:11:45.64ID:H0Ke+o4H0 データバインド使うためだけに余波が物凄くね?
開始日と終了日のエラーを許容してる間って他の値を変えたときはそっちは保存するの?
開始日と終了日のエラーを許容してる間って他の値を変えたときはそっちは保存するの?
323デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 16:18:07.86ID:3jwmj/rb0 ViewModel使う事によって余波が減ってると思うが。
他の値は他の値でバリデーションかけたら良いだろ。
保存されるも何も、Modelとしてされないよ。一部がおかしいデータは全体として必ずおかしいだろ。
ViewModelとしては一時保存したければするかもしれんが、Modelにはならん。
その別のデータとやらが開始日と終了日に挟まれているべき日付、なんかだったらそもそもの定義が揺らいでくるじゃん。
全部Leaveするときにチェックするの?コントロール順とか、入力バリデーションに引っかかる順番ごとにテストする?組み合わせ爆発するし、ダイアログが出るかどうかなんてテスト、自動化しづらくて仕方ないじゃん。
明らかに、ViewModelとして帳尻が合ってるかをチェックする方が確実だし効率的でしょ。
だから許容も何もない。
他の値は他の値でバリデーションかけたら良いだろ。
保存されるも何も、Modelとしてされないよ。一部がおかしいデータは全体として必ずおかしいだろ。
ViewModelとしては一時保存したければするかもしれんが、Modelにはならん。
その別のデータとやらが開始日と終了日に挟まれているべき日付、なんかだったらそもそもの定義が揺らいでくるじゃん。
全部Leaveするときにチェックするの?コントロール順とか、入力バリデーションに引っかかる順番ごとにテストする?組み合わせ爆発するし、ダイアログが出るかどうかなんてテスト、自動化しづらくて仕方ないじゃん。
明らかに、ViewModelとして帳尻が合ってるかをチェックする方が確実だし効率的でしょ。
だから許容も何もない。
324デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 16:46:04.32ID:H0Ke+o4H0 いや、UNDOどうなん?
本格的にエラー値を保存しちゃうの?
本格的にエラー値を保存しちゃうの?
325デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 16:53:34.11ID:3jwmj/rb0 エラー値をViewModelとして表示するし、一時保存もするだろう。
Modelは保存しない(できない)から問題無い。
エラーも含めてUndo、Redoできて何かおかしいか?
未入力 2020/12/31
2021/01/02 2020/12/31
2021/01/02 2021/02/21
全部Undoすれば良いじゃん。
俺がよく使うのは、Undoはコントロールレベルに留めて、「入力破棄」とか「再読込」ってボタンを用意する事だけど。
変更はViewModelに留まってるから、普通に破棄してModelから再読み込みしてViewModel再構成したら終わる。
開始日終了日は確定してないけど一部だけ変更されたデータなんかを保存するつもりなの?
Modelは保存しない(できない)から問題無い。
エラーも含めてUndo、Redoできて何かおかしいか?
未入力 2020/12/31
2021/01/02 2020/12/31
2021/01/02 2021/02/21
全部Undoすれば良いじゃん。
俺がよく使うのは、Undoはコントロールレベルに留めて、「入力破棄」とか「再読込」ってボタンを用意する事だけど。
変更はViewModelに留まってるから、普通に破棄してModelから再読み込みしてViewModel再構成したら終わる。
開始日終了日は確定してないけど一部だけ変更されたデータなんかを保存するつもりなの?
326デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 17:00:54.66ID:3jwmj/rb0 ViewModelにエラーを表示している状態を保存してなんの問題があるんだろう。
実データとは全く関係ないデータなんだが。
そのあと修正して確定させないとModelに落ちないなら問題なくね?
いっつもそうして「仮保存」やってるんだけど。
番号取っとかないとダメとかはまた別のやり方するけどさ。
実データとは全く関係ないデータなんだが。
そのあと修正して確定させないとModelに落ちないなら問題なくね?
いっつもそうして「仮保存」やってるんだけど。
番号取っとかないとダメとかはまた別のやり方するけどさ。
327デフォルトの名無しさん (ワッチョイ 0763-n48n)
2021/01/24(日) 17:51:29.07ID:VCT3oYN70 twitterでやれ
328デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 17:55:17.05ID:H0Ke+o4H0 この間別の正しい値はmodelまで保存できるの?
開始日と終了日に関わるすべての値が保存対象でなくなる?
開始日と終了日に関わるすべての値が保存対象でなくなる?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 [少考さん★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★3 [Hitzeschleier★]
- 【画像】消えた美人女優 上原多香子さん(42)、沖縄で目撃される [牛丼★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- バイク事故で入院ゆたぼん、見舞金「1円」振り込みの名義に衝撃「悲しい人ですね」「こういう人がいるから…」 [muffin★]
- 【高市朗報】中国、歴史上日本に一度も侵攻したことがない親日国だった [931948549]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★1
- 高市早苗、森元総理の愛人だった [347751896]
- (´・ω・`)派遣社員だけどボーナス無いから会社のアイスパクるね
- 躁鬱病って甘えじゃね?
- 【声優】亡くなった人で好きだった声優👈誰を思いつく?? [519998392] [839143615]
