WPF

C#WPFの道#12!SQLiteとListViewでマスタ設定画面の作成!

これまでの知識のまとめ

ListViewを学んだので、SQLiteと組み合わせることで、ある程度のアプリケーションを作ることができます。これまで学んだ知識のまとめとして、マスター設定画面の作成をしてみましょう。腕試しとして、次の仕様だけを見てご自身で一度プログラミングしてみることをお勧めします。どうしてもわからない場合は解説を見ながら一緒にコーディングしてみてください。ただ、データの更新と削除はまだ解説していないので、解説を見てください。

仕様

<一覧画面>

Addボタン Save画面の起動
Updateボタン Save画面の起動
Deleteボタン ListViewで選択されているCustomerテーブルの行削除
一覧(ListView) Customerテーブルの一覧を表示

<Save画面>

テキストボックス

Customerの名前を表示
Addモードのときは空文字
Updateモードのときは呼び出し元画面で指定した名前

Saveボタン

AddモードのときはCustomerの新規追加
UpdateモードのときはCustomerの行更新

Customerテーブル(SQLite)

Id ID
Name 名前

実装例

App.xaml

App.xamlにはSQLiteの接続先を定義します。場所は任意の場所で問題ありません。

Customerクラス

CustomerクラスはIdとNameのみを定義します。コンストラクタは用途別に3種類定義しています。コンストラクタは記述しなくても問題はありません。インスタンスを生成時に値を指定するほうがコードがわかりやすくなるためそうしています。

MainWindow.xaml

MainWindowではStackPanel上に、Add、Update、DeleteボタンとListViewを設置しています。

MainWindow.xaml コードビハインド側

Addボタン押下時はCustomerをNullでSave画面を起動。Update時は選択されている行のCustomerクラスを引数に渡しています。ListViewの選択行はSelectedItemで取得します。選択されていないときはNullになるため、Nullチェックも行っています。 Updateボタン押下時は選択行のCustomerクラスを引数としてSave画面を起動しています。Deleteボタン押下時は選択行のCustomerクラスを削除しています。削除はconnection.Deleteで実行しています。

SaveWindow.xaml

Save画面は名前のテキストボックスと、Saveボタンを設置しています。

SaveWindow.xaml コードビハインド側

Save画面のコンストラクタでは、Customerクラスを引数にしています。Nullの場合は新規追加、Null以外のときは、更新処理をしています。 更新処理はconnection.Updateで実行しています。 以上がサンプルコードとなります。

WPFの道!

C#を正しい3層構造で造れてますか?

非売品コースを受け取る