バージョン

DataErrorInfo サポート

トピックの概要

目的

このトピックは、 WinGrid™ コントロールの拡張されたデータ検証機能を紹介し、構成例を提供します。既存の IDataErrorInfo とは異なります。

前提条件

このトピックを理解するためには、以下のトピックを理解しておく必要があります。

トピック 目的

このトピックは、データ バインドされるコントロールの行およびセル エラーのために使用される IDataErrorInfo (.NET) インターフェイスについての前提情報を提供します。

セルと行の DataErrorInfo の構成

はじめに

WinGrid コントロールは、グリッドのデータ ソースが IDataErrorInfo インターフェイスによって情報を返す場合に行およびセルにエラー、画像、ツールチップの表示をサポートします。データ エラーをデータ ソースに設定し、データソースから取得されるため、非バインド列とセルにデータ検証が利用不可です。

UltraGridRow.UltraGridRowDataErrorInfo プロパティは行または行のセルにエラー情報の取得と設定を許可します。この情報はデータ ソースの IDataErrorInfo 実装から返されたエラー情報とは関係ありません。UltraGridRow.DataErrorInfo にエラーを適用すると、基本データ ソースのエラーに影響しません。

IDataErrorInfo インターフェイスを使用しなかった非バインド列のセルおよび行にデータ エラーを表示できます。 UltraGridRow オブジェクトで直接にデータ ソースから取得されたエラー テキストをオーバーライドできます。

Note
注:

UltraGridRow に適用された DataErrorInfo を使用して DataSource のエラー テキストをオーバーライドすることが可能ですが、テキストを非表示にするか、削除するために DataSource に表示されるエラーを空の文字列と置き換えることはできません。オーバーライドしようとすると、DataSource のエラー テキストを表示します。

DataErrorInfo の有効化

機能をサポートするには、グリッドにエラーを適用するか取得する前に SupportDataErrorInfo を有効にする必要があります。

利用可能な SupportDataErrorInfo 列挙体オプションは以下です:

  • CellsOnly

  • Default (サポートなし)

  • None

  • RowsAndCells

  • RowsOnly

C# の場合:

ultraGrid1.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.RowsAndCells;

Visual Basic の場合:

ultraGrid1.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.RowsAndCells

セルにデータ エラーの適用

InitializeRow イベントでセルをデータ エラー情報に設定するには、 SetColumnError メソッドを使用します。

C# の場合:

if ((double)e.Row.Cells["BasePrice"].Value == 0)
    e.Row.DataErrorInfo.SetColumnError("BasePrice", "Cell Error: Zero in invalid.");

Visual Basic の場合:

If CDbl(e.Row.Cells("BasePrice").Value) = 0 Then
      e.Row.DataErrorInfo.SetColumnError("BasePrice", "Cell Error: Zero in invalid.")
End If

セルのデータ エラー情報を取得するには、 GetColumnError メソッドを使用します。

C# の場合:

string columnError = e.Row.DataErrorInfo.GetColumnError("BasePrice");

Visual Basic の場合:

Dim columnError As String = e.Row.DataErrorInfo.GetColumnError("BasePrice")
WinGrid DataErrorInfo Support 1.png

行にデータ エラーの適用

以下のコード例は RowError プロパティを使用すると、 InitializeRow イベントで行にデータ エラー情報を適用します。

C# の場合:

if ((double)e.Row.Cells["BasePrice"].Value == 0)
    e.Row.DataErrorInfo.RowError = "Row contains invalid cell values...";

Visual Basic の場合:

If CDbl(e.Row.Cells("BasePrice").Value) = 0 Then
      e.Row.DataErrorInfo.RowError = "Row contains invalid cell values..."
End If
WinGrid DataErrorInfo Support 2.png

データ ソースおよびグリッド行から解決されたエラー情報を返す DataErrorInfoResolved プロパティを使用して解決されたエラーを取得できます。

関連コンテンツ

トピック

以下のトピックでは、このトピックに関連する追加情報を提供しています。

トピック 目的

このセクションでは、 WinGrid コントロールに関連する特定のタスクを実行する方法を簡潔に説明するタスク ベースのトピックを紹介します。