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

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

2024.03.12
XML
カテゴリ: C#.NET


`IDataErrorInfo` インターフェースは、WPFデータバインディングの検証エラーを処理するための標準的な手段です。以下は、`IDataErrorInfo` を実装して、プロパティレベルとオブジェクトレベルの検証エラーを管理するサンプルコードです。


```csharp

using System;

using System.Collections;

using System.ComponentModel;


public class Person : IDataErrorInfo

{

    public string Name { get; set; }

    public int Age { get; set; }


    // プロパティレベルの検証エラー

    public string this[string columnName]

    {

        get

        {

            string result = null;

            if (columnName == "Name")

            {

                if (string.IsNullOrWhiteSpace(Name))

                {

                    result = "Name is required.";

                }

            }

            else if (columnName == "Age")

            {

                if (Age < 0 || Age > 120)

                {

                    result = "Age must be between 0 and 120.";

                }

            }

            return result;

        }

    }


    // オブジェクトレベルの検証エラー

    public string Error

    {

        get

        {

            if (!string.IsNullOrWhiteSpace(Name) && Name.Length > 50)

            {

                return "Name length should be less than or equal to 50 characters.";

            }

            return null;

        }

    }

}

```


この例では、`Person`クラスが `IDataErrorInfo` インターフェースを実装しています。`IDataErrorInfo` インターフェースには、`this[string columnName]` プロパティと `Error` プロパティがあります。


- `this[string columnName]` プロパティは、プロパティレベルの検証エラーを処理します。このプロパティは、指定されたプロパティに関連するエラーメッセージを返します。

- `Error` プロパティは、オブジェクトレベルの検証エラーを処理します。このプロパティは、オブジェクト全体に関連するエラーメッセージを返します。


これらのプロパティを使用して、WPFのデータバインディングで検証エラーを処理できます。例えば、`TextBox`の `Text` プロパティに `Name` プロパティをバインドし、バリデーションエラーが発生した場合にエラーメッセージを表示するスタイルを適用することができます。






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

Last updated  2024.03.12 04:42:45


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

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