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

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

2024.03.31
XML
カテゴリ: C#.NET


C#のWPFで入力検証を行うためによく使用されるコードの例を示します。以下の例では、`ValidationRule`を使用して、テキストボックスに入力された値が数値であるかどうかを確認します。


```csharp

using System.Windows;

using System.Windows.Controls;


namespace InputValidationExample

{

    public class NumericValidationRule : ValidationRule

    {

        public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)

        {

            // 入力が空である場合は無視

            if (string.IsNullOrEmpty(value as string))

            {

                return new ValidationResult(true, null);

            }


            // 入力が数値であるかどうかを確認

            double result;

            if (double.TryParse(value.ToString(), out result))

            {

                return new ValidationResult(true, null);

            }

            else

            {

                return new ValidationResult(false, "数値を入力してください。");

            }

        }

    }

}

```


上記のコードでは、`NumericValidationRule`クラスが`ValidationRule`クラスを継承し、`Validate`メソッドをオーバーライドして入力検証ロジックを実装しています。この検証ルールでは、入力が空でない場合に、その値が数値であるかどうかを確認し、数値でない場合はエラーメッセージを返します。


次に、この検証ルールをXAMLで使用する方法を示します。


```xml

<Window x:Class="InputValidationExample.MainWindow"

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

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

        xmlns:local="clr-namespace:InputValidationExample"

        Title="MainWindow" Height="350" Width="525">

    <Grid>

        <TextBox x:Name="textBox" Margin="10" VerticalAlignment="Center">

            <TextBox.Text>

                <Binding Path="MyValue" UpdateSourceTrigger="PropertyChanged">

                    <Binding.ValidationRules>

                        <local:NumericValidationRule />

                    </Binding.ValidationRules>

                </Binding>

            </TextBox.Text>

        </TextBox>

        <TextBlock Text="{Binding ElementName=textBox, Path=(Validation.Errors).CurrentItem.ErrorContent}" 

                   Foreground="Red" Margin="10" VerticalAlignment="Center" />

    </Grid>

</Window>

```


上記のXAMLコードでは、`TextBox`コントロールに`NumericValidationRule`を検証ルールとして適用し、入力値の検証を行っています。また、`TextBlock`コントロールを使用して、検証エラーがある場合にエラーメッセージを表示しています。


これで、WPFアプリケーションで入力検証を行うための基本的なコードが提供されました。






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

Last updated  2024.03.31 13:50:31


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

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