投稿

10月, 2024の投稿を表示しています

C# XAML でリストデータに対してIndexを付けるコンバーター

作ったは良いが目的が達せられなかったのでメモしておく チェックボックスを下記の様に並べて、ただ数字を割り振りたいだけの場合、 ViewModel側には「ReactiveCollection<ReactiveProperty<bool>> BoolList{get;}」だけ保持しておけば数字は不要です。 □1 □2 □3 □4 □5 □6 □7 □8 □9 □10 □11 □12 ……… ……… 利点:BoolList の個数を変更すれば自動的にチェックボックスの個数・数字が増減します。 難点:Index(数字)しか出力しないので汎用性が低い。(Boolをクラスにした方が仕様変更には強いよねー) その他:カラム数は固定ですが、Bindingを使えばViewModel側から指定できるはず。 コンバーターのソース /// <summary> /// ItemsControl で利用されるデータのIndex値を取得します。 /// </summary> public class ItemsIndexConverter : IMultiValueConverter { /// <summary> /// ItemsControl に対し、Index値を取得します /// </summary> /// <param name="values">表示元の値</param> /// <param name="targetType">データ型</param> /// <param name="parameter">画面からのパラメータ</param> /// <param name="culture">国情報(必ずen-USが来ます)</param> /// <returns>表示するデータ</returns> public object Convert(object[] values, Type targe...

Chat GTP(無料版) …お前ってやつは… その2

ChatGTPに24個のデータの行列の入れ替え処理を書いて貰ってたんだが 目指す形は「6行4列」なのだが、「4行6列」と認識して正しい処理を書いてくれなかった。 書いたコードを実行しても「4行6列」のコードしか出してくれなかった。 何度か「間違ってるから直して」「6行4列に出したいです」などなどのやり取りをすること4・5回目… (途中結果でChatGTPの出力結果と、実際のコード実行結果が異なった時には何とも言えない気持ちになった…) で正しい結果が出ているが、どうもコードが変… 「6行4列」なのに、「int rows = 4;int columns = 6;」 という、行列とRowColが間違ったコードを出されてしまった。 その時の内容: 自分:int rows = 4; は 列数なのに、なぜRows なの? 回答:ご指摘の通り、rows という変数名は列数を表すのに適切ではありません。今回のケースでは、**「4列6行」**という設定なので、変数名としては columns が適切です。 したがって、変数名をよりわかりやすくするために、次のように変更するのが良いです。 ************直ったコードが書かれてる************ 変更点 rows(行数)と columns(列数)の変数名を正しく対応させました。 int columns = 4; は 列数を表し、4列を指定します。 int rows = 6; は 行数を表し、6行を指定します。 これで、変数名と内容が一致し、コードがより理解しやすくなります。 … Row/Colが間違っていて混乱した自分もまだまだだなぁとは思うが、 お前はそう言う奴だよなっ! /********************************************************************************** 本記事はGooブログから作成者本人が移行しました。  **********************************************************************************/