質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

362閲覧

WPFのリストの使い方を教えてください。

shakenokirimi12

総合スコア22

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2021/07/28 05:41

編集2021/07/30 01:38

中高一貫校の寮で生徒を呼び出す放送システムをWPFアプリで作っています。
大枠はできたのですが、生徒番号から生徒の名前を割り出す方法の中で、
1.生徒の名前をリスト化する方法
2.リストから生徒の名前を抽出し、変数として保存する
の以上の二つの方法がわかりません。
ちなみに、生徒番号は
ex:18025
だと、
・上2桁(例だと18)が入学年度
・下二桁(例だと25)が学年での五十音順
・三桁目は高校入学生かどうか(5だと高校入学生、0だと中学入学生)となっています。
つまり、18025だと、2018年入学の学年で五十音25番目で中学入学生
ということになります。
if文をたくさん使えばこの構造はできると思うのですが、先述の通りWPFでのリストの作り方と、リストからの抽出方法がわかりません。
WPFを始めたばかりなので、なるべくわかりやすく説明いただけると幸いです。
環境はVisualStudioCommunity2019です。
可能であれば、Excelから読み込みとかができると年度変更時に楽なのですが、可能でしょうか。

言葉足らずですみませんでした。書き直します。gentaroさん、申し訳ありませんでした。
まず、TN8001さんのコメントですが、僕が作りたいのはGUI上に表示させず、裏で名前と学籍番号を紐づけ、テキストボックスで入力された学籍番号に紐づいている名前を変数として保存したい、ということです。僕のイメージとしては、
例えば18025を入力したとき、「下2桁が25だからリストの25番目にある田中太郎くんだ」のような感じのコードを書きたいです。
Zuishinさん、アドバイスありがとうございます。
可能であれば、例えば「プログラムを発行した後、同じフォルダにあるファイルを少し変えれば学年の変更ができる」など、プログラム内ではなくプログラムの外にあるファイルで生徒のリストを作成することはできるのでしょうか。
そもそも、私がこのようなソフトを作るのが初めてで、手探りでやっているところなので、皆様からすると幼稚な質問かもしれませんが、ご回答いただけないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2021/07/28 08:45

WPFだから云々って要素が全くわからないんだけども。 最初から取得したデータに含まれる生徒番号とやらを分解して、個別の要素として扱えるようにしておけば、後はそれに合わせて画面に描画するだけじゃないの。 ここは無料家庭教師サイトじゃないので、ざっくり「わかりません」「教えて下さい」じゃなくで、あなたがやろうとした事について、どう考え、何を調べ、どの部分が「具体的に」わからないのかを質問するところだという事をまず踏まえ、第三者にそれが伝わる質問文を書きましょう。 ガイドラインを最低3回ぐらい読んで質問文を書き直すことをオススメします。 https://teratail.com/help/question-tips https://teratail.com/help/avoid-asking
TN8001

2021/07/28 10:37

「リスト」という表記が何度も出てきますが、「リスト」とは何を指していますか? [List<T> クラス (System.Collections.Generic) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.list-1 のこと? それとも一般名詞として言っている?? タイトルには「WPFのリスト」とあるのでWPFに関係ありそうなものを上げると、 [ListBox クラス (System.Windows.Controls) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.controls.listbox (比較的シンプルな)選択項目が縦に並び、その中から一つ(あるいは複数)を一覧・選択させるコントロール。 [ListView クラス (System.Windows.Controls) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.controls.listview (エクスプローラーの詳細表示のような)表形式で選択項目が縦に並び、その中から一つ(あるいは複数)を一覧・選択させるコントロール。 [DataGrid クラス (System.Windows.Controls) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.controls.datagrid (Excelのように)表形式で項目が縦に並び、内容の編集や項目の追加削除を主な目的とするコントロール。 [ComboBox クラス (System.Windows.Controls) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.controls.combobox 通常時は選択中の1項目のみ表示するが、変更時はドロップダウンメニューがペロッと出る(コンパクトなListBoxのような)コントロール。 > if文をたくさん使えばこの構造はできると思うのですが、先述の通りWPFでのリストの作り方と、リストからの抽出方法がわかりません。 もしかして絞り込み検索みたいなことを言っていますか? > 大枠はできたのですが Viewのイメージができているなら、xamlや関連コードを提示してください。 あるいは画像等でどうしたいのかを説明してください。
Zuishin

2021/07/28 12:28 編集

> if文をたくさん使えばこの構造はできると思うのですが 作る必要はないでしょう。 入学年度や五十音順などと学籍番号を相互変換するような関数を作っても使うときはないと思います。 学籍番号は各桁に何の意味もないただの番号として扱うので十分です。 public class Student { public int Number { get; set; } // 学籍番号 public string Name { get; set; } // 名前 } var students = new List<Student> { new Student() { Number = 18025; Name = "太郎" }, new Student() { Number = 18026; Name = "次郎" }, new Student() { Number = 18527; Name = "三郎" }, }; // 学籍番号から太郎を見つける時 var taro = students.FirstOrDefault(a => a.Number == 18025); // 学籍番号 18025 がいれば taro には太郎オブジェクトが入り、いなければ null になる // 名前から太郎をみつける時 var taro = Students.FirstOrDefault(a => a.Name == "太郎");
Zuishin

2021/07/30 01:37 編集

> その年度変更時に学年の変更がものすごく面倒になってしまう気がします。(違ったらすみません。) 意味がわかりません。 変更の可能性があるのは下二けただけのはずで、ここが変更されたらどのみち入力しなければならないはずです。 まあ五十音順のリストが与えられるのであれば、下二けたを並び順から自動生成するのは可能です。
shakenokirimi12

2021/07/30 01:36

すみません、勘違いでした。修正します。
shakenokirimi12

2021/07/30 01:37

ただ、リストをプログラムの外で管理する方法はありますか?
Zuishin

2021/07/30 01:39

> ただ、リストをプログラムの外で管理する方法はありますか? Excel を使うのであれば、ClosedXML をお勧めします。 その他には Excel 自体の COM を使う方法などもありますが、単なるリストであれば ClosedXML で十分です。
shakenokirimi12

2021/07/30 01:42

ありがとうございます。可能であればその情報が載ったサイトのURLはありますか?
gentaro

2021/07/30 03:14

ググりゃなんぼでも出てくるやん…。 自分で調べようとか思わないのかね。
shakenokirimi12

2021/07/30 03:45

お詳しい方なら僕よりもいいものをご存じかと思いまして。
gentaro

2021/07/30 03:47

残念ながらここはそういうサイトじゃない。 自分で調べて不明な点を質問してる前提。 あなたが自分で調べる気がないのなら「丸投げ質問」という事で低評価させてもらうわ。 https://teratail.com/help/question-tips#questionTips1-2
Zuishin

2021/07/30 03:50

詳しい人はドキュメントを読みます。入門者にとっていいサイトは次々に変わるので、詳しい人は最近のものを知らない可能性も高いです。
shakenokirimi12

2021/07/30 03:53

ありがとうございます!お手数おかけしました。
guest

回答1

0

自己解決

Zushinさんの情報をもとに解決させていただきました。

投稿2021/07/31 01:51

shakenokirimi12

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問