【課題10-04】自己紹介アプリ ver 3.0
| プロジェクトタイプ | C# WPFアプリケーション |
|---|---|
| プロジェクト名 | Prac_10_04 |
| ソリューション名 | PET10 |
| ターゲットフレームワーク | .NET 6.0 (長期的なサポート) |
※ 「WPFアプリ(.NET Framework)」ではないので注意せよ!
【課題10-03】で改造した,自己紹介に関する情報を表すクラスIntroductionInfoを用いる設問である.
_に示すような,自己紹介に関する情報のリストを管理するアプリを作成せよ.
レイアウトは_のよう2行3列のレイアウトにすること.
注意
このGUIアプリは_に示す部品を備える.
なおスタイルを使ってウィンドウ以外のすべての種類の部品(Button, ListView, TextBox, Label, DatePicker)に
_に示すスタイルを設定すること.
| 名前 | 種別 | 機能 | 初期値/文言 | 備考 |
|---|---|---|---|---|
button1 | ボタン | 「追加」ボタン | 追加 | 新たな自己紹介を追加するためのボタン..その際,新規作成して追加するIntroductionInfoの内容は以下のようにすること.【新規作成する自己紹介情報 】 学籍番号: HI022999氏名: 名無しの権兵衛好きな言葉: ないです誕生日: 2000年1月1日(C#での記述→new DateTime(2000, 1, 1)) |
button2 | ボタン | 「削除」ボタン | 削除 | listView1で選択中の自己紹介情報を削除する.未選択の場合には何もしない. |
listView1 | リストビュー | プレイヤーキャラクターの一覧表示 | (備考参照) | 後述するIntroductionInfoクラスのリストを一覧表示する.表示の際は以下のような表組みで表示すること(長くなるので学籍番号と氏名のみを表示する).【表組みの設定】 ・ 列その1 見出し: 学籍番号表示するデータ: StudentIDプロパティの値を表示する・ 列その2 見出し: 氏名表示するデータ: Nameプロパティの値を表示するlistView1で選択中の自己紹介情報の各プロパティの内容はtextBox1~3およびdatePicker1で表示・編集する. |
stackPanel1 | スタックパネル | (備考参照) | - | 後述するlabel1~4,textBox1~3およびdatePicker1を包含するスタックパネル.データバインディングを用いて, listView1の.SelectedItemプロパティを,この部品のDataContextプロパティに関連付けておく. |
label1 | ラベル | 静的な文言 | 学籍番号: | - |
label2 | ラベル | 静的な文言 | 氏名: | - |
label3 | ラベル | 静的な文言 | 好きな言葉: | - |
label4 | ラベル | 静的な文言 | 誕生日: | - |
textBox1 | テキストボックス | 「学籍番号」の表示・編集 | (備考を参照) | listView1で現在選択中している自己紹介情報の「学籍番号」を表示・編集する.データバインディングを用いて,.StudentIDプロパティを関連付けておく. |
textBox2 | テキストボックス | 「氏名」の表示・編集 | (備考を参照) | listView1で現在選択中している自己紹介情報の「氏名」を表示・編集する.データバインディングを用いて,.Nameプロパティを関連付けておく. |
textBox3 | テキストボックス | 「好きな言葉」の表示・編集 | (備考を参照) | listView1で現在選択中している自己紹介情報の「好きな言葉」を表示・編集する.データバインディングを用いて,.Mottoプロパティを関連付けておく. |
datePicker1 | DatePicker | 「誕生日」の表示・編集 | (備考を参照) | listView1で現在選択中している自己紹介情報の「誕生日」を表示・編集する.データバインディングを用いて,.Birthdayプロパティを関連付けておく. |
| (名前なし) | ウィンドウ | (メインウィンドウ) | 自己紹介アプリ ver 3.0 | プロジェクト作成時に自動作成されるメインウィンドウ. この設問ではアプリの開始時に自己紹介リストの読み込み,終了時に自己紹介リストの書き出しを行う. 【開始時の処理】 作業ディレクトリの直下に intro_list.jsonが存在するかどうかをチェックする.存在しない場合は何もしない.存在する場合は,このファイルをJSON形式として読み込み,自己紹介リスト(後述のリストintros)に追加する.【終了時の処理】 自己紹介リスト(後述のリスト intros)をJSON形式で保存する.ファイル名はintro_list.jsonとし保存場所は作業ディレクトリの直下とする.【プロパティの指定】 ・サイズは幅400×高さ300とする. ・背景色はデフォルトの白以外に設定する. ・左記の「初期値/文言」の列とおり文言,つまりタイトルを指定する. |
| プロパティ名 | 設定値 |
|---|---|
Margin | 3 3 3 3 |
この設問には【課題10-03】で 改造した ,自己紹介についての情報を表すクラス
IntroductionInfoの定義が必要である. プロジェクトにクラスを追加し1,_のように【課題10-03】の
IntroductionInfoクラスの定義を貼り付けて使用すること.
| |
なおMainWindowクラスは_のようにすること.
| |
正しく実装できた場合,実行結果は_に示すような挙動となる2,3.
ヒント
なし

