【使用例】 DataTable内の列「対象外」の値により、セルの編集可否をコントロールする。
「セルの編集開始時にイベントを発生させる方法」を用いて、セル編集開始時にイベントを発生させます。
イベントメソッド内では、カレント行の値を判断し、編集操作の中断を設定します。
/// <summary>
/// DataGridセル変更開始イベント共通メソッド
/// </summary>
/// <remark>
/// ・「対象外」列がtrueの場合、行全体で編集不可とする
/// </remark>
private void DataGrid_ValueChanging( object sender, OsDataGridExtensions.DataGridValueChangingEventArgs e )
{
// RowObjectがDataRowViewでない場合、Exit
if ( e.Row.GetType() != typeof(DataRowView))
return;
DataRow dr = ((DataRowView)e.Row).Row;
// 対象外の場合、編集不可にする
if ( !e.ColumnName.Equals("対象外") && dr.Table.Columns.IndexOf("対象外") >= 0
&& !dr.IsNull("対象外") && (bool)dr["対象外"])
{
e.Cancel = true;
return;
}
}
|