Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid
コードの記述を開始する前にコード ビハインドに使用/インポートのディレクティブを配置します。そうすれば、メンバは完全に記述された名前を常に入力する必要がなくなります。
Visual Basic の場合:
Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid
C# の場合:
using Infragistics.Win; using Infragistics.Win.UltraWinGrid;
IDataErrorInfo は行およびセルのエラーをデータバインドされたコントロールに表示する .NET インタフェースです。このインタフェースは一般に行オブジェクト上で実装されます。IDataErrorInfo は行の個別セルおよび行自身にエラー メッセージを提供します。IDataErrorInfo は DataRowView .NET クラスによって実装されています。つまり、DataSet と DataTable は IDataErrorInfo をサポートするデータ ソースの中にあるということを意味します。WinGrid 内に IDataErrorInfo エラーを表示する機能を有効にするには、 Override オブジェクトで SupportDataErrorInfo プロパティを設定します。
Visual Basic の場合:
Me.UltraGrid1.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.RowsAndCells
C# の場合:
this.ultraGrid1.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.RowsAndCells;
特定の列の SupportDataErrorInfo プロパティを設定すると、その列での IDataErrorInfo エラー表示を明示的に有効または無効にすることもできます。
Visual Basic の場合:
Me.UltraGrid1.DisplayLayout.Bands(0).Columns(0).SupportDataErrorInfo = DefaultableBoolean.False
C# の場合:
this.ultraGrid1.DisplayLayout.Bands[0].Columns[0].SupportDataErrorInfo = DefaultableBoolean.False;
UltraGrid が使用するデフォルトのエラー アイコンは、Overide オブジェクトの DataErrorCellAppearance および DataErrorRowSelectorAppearance に "Image" を設定すれば変更できます。また、Overirde オブジェクトの DataErrorCellAppearance、DataErrorRowAppearance、および DataErrorRowSelectorAppearance を使用して、データ エラーを含むセル、行、および行セレクタに外観を適用することも可能です。
Visual Basic の場合:
Me.UltraGrid1.DisplayLayout.Override.DataErrorCellAppearance.BackColor = Color.Red Me.UltraGrid1.DisplayLayout.Override.DataErrorRowSelectorAppearance.BackColor = Color.Red Me.UltraGrid1.DisplayLayout.Override.DataErrorRowAppearance.BackColor = Color.LightYellow
C# の場合:
this.ultraGrid1.DisplayLayout.Override.DataErrorCellAppearance.BackColor = Color.Red; this.ultraGrid1.DisplayLayout.Override.DataErrorRowSelectorAppearance.BackColor = Color.Red; this.ultraGrid1.DisplayLayout.Override.DataErrorRowAppearance.BackColor = Color.LightYellow;
データ エラーはデータ ソースの行オブジェクト上で直接設定されます。DataSet および DataTable のデータ ソースでは、これらの行オブジェクトは DataRow インスタンスです。DataRow オブジェクトは、UltraGridRow の ListObject プロパティを使用することによって、UltraGridRow から取得できます。次のコードでは、UltraGridのInitializeRow イベントを使ってデータ エラーを設定しています。
Visual Basic の場合:
Private Sub UltraGrid1_InitializeRow(ByVal sender As Object, _
ByVal e As Infragistics.Win.UltraWinGrid.InitializeRowEventArgs) _
Handles UltraGrid1.InitializeRow
Dim rowError As String = ""
Dim cellError As String = ""
Dim value As Object = e.Row.Cells("Fax").Value
' Fax 列の値が空の場合、データ エラーを設定します。
If DBNull.Value Is value Then
rowError = "Row contains errors."
cellError = "Fax can not be empty."
End If
Dim drv As DataRowView = DirectCast(e.Row.ListObject, DataRowView)
drv.Row.RowError = rowError
drv.Row.SetColumnError("Fax", cellError)
End Sub
C# の場合:
private void ultraGrid1_InitializeRow(object sender,
Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
{
string rowError = "";
string cellError = "";
Object value = e.Row.Cells["Fax"].Value;
// Fax 列の値が空の場合、データ エラーを設定します。
if(DBNull.Value == value)
{
rowError = "Row contains errors.";
cellError = "Fax can not be empty";
}
DataRowView drv = (DataRowView)e.Row.ListObject;
drv.Row.RowError = rowError;
drv.Row.SetColumnError("Fax", cellError);
}
次の図は、セルおよび行セレクタ内で IDataErrorInfo データ エラーを表示している UltraGrid のスナップショットです。