「東雲 忠太郎」の平凡な日常のできごと

「東雲 忠太郎」の平凡な日常のできごと

2024.03.18
XML
カテゴリ: C#.NET


以下は、C# WPFアプリケーションでMVVMパターンを使用して入力検証を実施するサンプルコードです。この例では、ViewModel内で入力値の検証を行い、適切なエラーメッセージを表示します。


まず、MainViewModelクラスを作成します。このクラスには、入力値を保持するプロパティと、検証ロジックを実装します。


```csharp

using System.ComponentModel;

using System.Runtime.CompilerServices;


namespace WpfValidationExample

{

    public class MainViewModel : INotifyPropertyChanged

    {

        private string _inputText;

        public string InputText

        {

            get { return _inputText; }

            set

            {

                if (_inputText != value)

                {

                    _inputText = value;

                    ValidateInput();

                    OnPropertyChanged();

                }

            }

        }


        private string _error;

        public string Error

        {

            get { return _error; }

            set

            {

                if (_error != value)

                {

                    _error = value;

                    OnPropertyChanged();

                }

            }

        }


        public event PropertyChangedEventHandler PropertyChanged;


        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)

        {

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

        }


        private void ValidateInput()

        {

            if (string.IsNullOrWhiteSpace(InputText))

            {

                Error = "Input cannot be empty.";

            }

            else if (InputText.Length < 5)

            {

                Error = "Input must be at least 5 characters long.";

            }

            else

            {

                Error = null;

            }

        }

    }

}

```


次に、MainWindow.xamlファイルで、ViewModelと入力コントロールをバインディングします。


```xml

<Window x:Class="WpfValidationExample.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:local="clr-namespace:WpfValidationExample"

        Title="MainWindow" Height="200" Width="300">

    <Grid>

        <TextBox Text="{Binding InputText, UpdateSourceTrigger=PropertyChanged}" Margin="10"/>

        <TextBlock Text="{Binding Error}" Margin="10" Foreground="Red"/>

    </Grid>

</Window>

```


最後に、MainWindow.xaml.csファイルで、ViewModelを作成し、DataContextとして設定します。


```csharp

using System.Windows;


namespace WpfValidationExample

{

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

            DataContext = new MainViewModel();

        }

    }

}

```


これで、入力値が変更されるたびに、ViewModel内の検証ロジックが実行され、エラーメッセージが適切に表示されます。






お気に入りの記事を「いいね!」で応援しよう

Last updated  2024.03.18 07:49:22


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

© Rakuten Group, Inc.
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: