1

私は、.NET 4.0 Framework を使用し、テレリック RadGridView を使用してさまざまなデータを表示する WPF アプリケーションを開発しています。RadGridView は、SQL データベースから入力された Observable Collection にバインドされています。IDataErrorInfo を使用して行の検証を処理していますが、コードをステップ実行すると、ほとんどの columnNames が空の文字列イベントのように見えますが、そうではないことがわかっています。検証を次のように定義しています。

public partial class DataRow : IDataErrorInfo
{
    public string Error
    {
        get { return null; }
    }
    public string this[string columnName]
    {
        get
        {
            return this.GetResult(columnName);
        }
    }

    private string GetResult(string columnName)
    {
        switch (columnName)
        {
            case "Column1":
                if (string.IsNullOrEmpty(this.Column2))
                {
                    return "Error";
                }
                break;
            case "Column2":
                if (string.IsNullOrEmpty(this.Column3))
                {
                    return "Error with Column 2";
                }
                break;
            case "Column3":
                break;
            case "Column4":
                if (!string.IsNullOrEmpty(this.Column4))
                {
                    return "Column 4 is not null or empty";
                }
                break;
            case "Column5":
                if (this.Column5 <= 0)
                {
                    return "Column 5 must be greater than zero";
                }
                break;
            default:
                break;
        }

        return null;
    }
}

DataRow のメンバーは、SQL データベースで定義されます。私はコードを実行してステップ実行し、一貫して Column1 検証と Column3 検証に到達していますが、他の列が呼び出されると、columnName は空の文字列になります。検証ルールを次のように変更すると、これが当てはまることがわかります。

private string GetResult(string columnName)
{
    switch (columnName)
    {
        case "Column1":
            if (string.IsNullOrEmpty(this.Column2))
            {
                return "Error";
            }
            break;
        case "":
            return "This column is in error";
            break;
        default:
            break;
    }
    return null;
}

Column2、Column4、および Column5 でエラーが発生します。

これまでのところ、他の誰かがこの問題を抱えているかどうかを見つけることができませんでした. どんな助けでも大歓迎です。

ありがとう!

4

0 に答える 0