1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

.NET MAUI (データ入力と検証)

Last updated at Posted at 2022-06-10

データ入力と検証

前回、単純な画面遷移ができたので、
今回は、画面から値を入力し、検証結果で画面遷移を制御してみます。

開発環境

  • Win11
  • VS2022 Preview Version 17.3.0 Preview 2.0

環境構築&プロジェクト作成の流れはこちらの記事でどうぞ。

実装

単純なものがよいので、ログイン画面にしてみました。

.NET MAUI の実装方法も、変わらずMVVMです。

作成したソースをGithubに公開しました。

Shell

ログイン画面と、遷移先の画面を追加しておきます。

AppShell.xaml

ログイン画面

社員番号は数値4桁。
パスワードは社員番号と同じであれば、メイン画面へ遷移します。
入力値が不正な場合や、パスワードが不一致の場合は、ログイン画面にエラーメッセージを表示します。

image.png

LoginPage.xaml
LoginPage.xaml.cs

入力値の検証

どうやるのがベストプラクティスなのかわからなかったので、Behaviorでやってみました。

ValidationPropertyBehavior.cs
ValidationPropertyConverter.cs

なにも入力しないで[ログイン]ボタンを押してみます。
image.png

エラーがある場合、ログインボタンは無効化されているので、社員番号に「abcd」を入力してみます。
image.png

社員番号を「1234」(数値4桁以内)にしてみます。
image.png

パスワードに「1235」を入力してみます。
image.png

ログインボタンを押してみます。
image.png

テキストが変更されるたびに、エラー内容が切り替わります。
TODO Unfocusedでのイベント発火に変更する

UIの部品化

検証エラーの一覧表示(赤い枠の部分)を、ContentViewを継承して部品化してみた。
ValidationPropertyError.xaml
ValidationPropertyError.xaml.cs

※上記では使ってないけど、エラーを全部まとめて表示するやつ
ValidationPropertyErrors.xaml
ValidationPropertyErrors.xaml.cs

メイン画面

入力値が正しい状態で、[ログイン]ボタンを押してみます。
ログイン画面で入力した社員番号を、メイン画面に渡して表示しました。
image.png

MainPage.xaml
MainPage.xaml.cs

画面間のデータの受け渡し

データの渡し方としては、QueryParameterでやってみました。

別の方法として、画面間のデータの受け渡しはDIで

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?