'宣言 Public Class ValidationSettings Inherits Infragistics.Shared.SubObjectBase
public class ValidationSettings : Infragistics.Shared.SubObjectBase
ValidationSettings クラスは、UltraValidator コンポーネントによって拡張された検証機能をカプセル化します。埋め込みエディターのホストをサポートする Infragistics コントロールを例外として、クラスのインスタンスは関連付けられた UltraValidator と同じフォーム上のすべてのコントロールに拡張されます。Panel コントロールなどの検証に通常関連付けられていないコントロールにも拡張されます。これらのコントロールを派生させてこれらに検証機能を追加できるからです。
Enabled プロパティは検証のサポートをオンまたはオフに切り替えるために使用できます。デフォルトでプロパティは True です。とはいえひとつ以上のプロパティ (Enabled に加えて) が開発者によって明示的に設定されるまで関連付けられたコントロールに対して検証が発生しません。
ValidationSettings オブジェクトを介してさまざまな種類の検証を実現できます。最も簡単な例はコントロールに対して空ではない値を強制することです。これは IsRequired プロパティを True に設定することによって実現されます。検証セッションがトリガーされると、ValidationPropertyName プロパティによって参照されるプロパティの現在の値が評価されて、EmptyValueCriteria プロパティの値によって「空の」定義が定義されて、論理的に空かどうかを決定します。たとえば、ValidationSettings インスタンスが TextBox コントロールに拡張されており、IsRequired プロパティが True に設定されていることが前提となっています。エンドユーザーがテキストとタブをコントロールからクリアする場合、以下のイベントのシーケンスが発生します。
多くの場合検証基準は空ではない値を単に強制するようなシンプルなケースを超えなければならないため、検証基準をカスタマイズする機能を提供するために Condition プロパティが公開されます。プロパティはタイプ ICondition で、UltraGrid コントロールで行フィルタリングを実装するためにこれまで使用していた既存の Infragistics インターフェイス。いくつかのコンクリート実装が Infragistics.Win 名前空間に存在します。RangeCondition クラスは、基本的な範囲の検証、つまり値が MinimumValue と MaximumValue によって決定された範囲内に入ることを求めるために使用できます。値が List 内の値に一致するかどうかを決定するために ContainedInListCondition クラスを使用できます。これは ValueList を使用して大量の有効な値を定義するために理想的に適しています。UltraGrid の行フィルタリング機能によって使用される多数の条件を定義する、OperatorCondition クラスは、「等しい」、「大なり」、「小なり」などのシンプルな論理比較、または Regex や「ワイルドカード」比較のようにより高度な論理比較などの広範な検証を実装するために使用できます。IList インターフェイスを実装する ConditionGroup クラスによって、任意の数の ICondition 実装を検証基準として指定することができます。また、すべての条件がパスしなければならないのか、ひとつだけパスすればいいのかを決定するプロパティも公開します。開発者は上記の実装のいずれの対象とならない検証基準を必要とする場合があるため、カスタムのインターフェイス実装を指定することができ、インターフェイス自体は単一のメソッドを実装することだけを必要とします。
検証の失敗をエンドユーザーに通知する方法を決定するプロパティは NotificationSettings プロパティ下にグループ化されます。そのプロパティによって返されるカスタム オブジェクトは、たとえばエラー画像や MessageBox の表示を簡単にするプロパティを公開します。
ValidationTrigger プロパティはどのイベントが検証セッションを開始するかを決定します。デフォルト値 'OnValidating' によってコントロールの Validating イベントに対応して検証が発生します (または検証されるエンティティが embeddable editor の場合は、BeforeExitEditMode イベント)。'OnPropertyValueChanged' 設定を使用する時に、ValidationPropertyName, によって参照されるプロパティの値における変更によって検証をトリガーすることもできます。ユーザー操作に対応した検証は 'Programmatic' 設定を使用して抑制できます。その場合、開発者が Validate メソッドを明示的に呼び出す時に限って検証が開始されます。
検証機能は、外部から提供された embeddable editors をホストする Infragistics コントロールに簡単に拡張できます。これは、UltraTextEditor または UltraComboEditor などの エディター プロバイダー コントロールに拡張された ValidationSettings インスタンスのプロパティを設定し、UltraGridColumn の EditorControl プロパティにエディター プロバイダー コントロールへの参照を指定することによって実行できます。その列内のセルはスタンドアロン プロバイダー コントロールとほとんど同じ方法で検証されます。エディターを提供するために、また自身の入力機能とともに表示可能なコントロールとして使用するためにエディター プロバイダー コントロールを使用することも推奨されないことに注意してください。
このインスタンスの検証基準によって定義されるように 埋め込み可能なエディター 値が現在無効であることを視覚的に描画する方法を提供するために ErrorAppearance プロパティが公開されます。値が無効の時には常に適用され、トリガーに対応してオンとオフを切り替えない点でこの外観は ValidationTrigger と距離を置きます。ErrorAppearance を使用するのは Infragistics エディターのみで Infragistics 以外のコントロールに適用できません。
ValidationGroup プロパティによって、そのグループのメンバーに対する検証を一時的に無効にするためにコントロールを論理グループに配列する、または各メンバーの検証をプログラム的にトリガーすることが可能となります。