e.ProposedValue
これを行う1つの方法は、DataTableのColumnChangingイベントでを検査することです。
特定の列に制約を設定するには、DataColumnのExtendedPropertiesコレクションを使用して、これらの制約をチェックするためのフラグとして機能します。
DataTable dt = new DataTable();
DataColumn dc = new DataColumn("Range", typeof(int));
dc.ExtendedProperties.Add("Min", 0);
dc.ExtendedProperties.Add("Max", 10);
dt.Columns.Add(dc);
dt.ColumnChanging += dt_ColumnChanging;
ColumnChangingイベントでは、これらのプロパティが存在するかどうかを確認してから、次のように使用します。
void dt_ColumnChanging(object sender, DataColumnChangeEventArgs e) {
if (e.Column.ExtendedProperties.ContainsKey("Min") &&
e.Column.ExtendedProperties.ContainsKey("Max")) {
int min = (int)e.Column.ExtendedProperties["Min"];
int max = (int)e.Column.ExtendedProperties["Max"];
if ((int)e.ProposedValue < min) e.ProposedValue = min;
if ((int)e.ProposedValue > max) e.ProposedValue = max;
}
}