【課題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.
ヒント
なし