protected void RowChangingEventHandler(object sender, DataRowChangeEventArgs e) { try { DataRow row = e.Row; switch (e.Action) { case (DataRowAction.Add): { //throw (new Exception("Cannot add rows")); break; } case (DataRowAction.Change): { //if this is an object, datetime, enum or ref property changing, //bring up custom UI for editing these!!!! if (gridMode == GridMode.EditMode) { //this can only be value change Property propAffected = (Property)this.rowPropertyMap[row]; //mgmtObj.Properties[row[propNameColumn].ToString()]; if (propAffected.Type == CimType.Object) { ////MessageBox.Show("should bring up custom type editor for objects"); } if (propAffected.Type == CimType.Reference) { //MessageBox.Show("should bring up custom type editor for refs"); } if (propAffected.Type == CimType.DateTime) { //MessageBox.Show("should bring up custom type editor for datetime"); } if (WmiHelper.IsValueMap(propAffected)) { //MessageBox.Show("should bring up custom type editor for enums"); } } break; } case (DataRowAction.Commit): { //MessageBox.Show("DataRowAction.Commit"); break; } case (DataRowAction.Delete): { throw (new Exception("Cannot delete rows")); } case (DataRowAction.Nothing): { MessageBox.Show("DataRowAction.Nothing"); break; } case (DataRowAction.Rollback): { MessageBox.Show("DataRowAction.Rollback"); break; } } } catch (Exception exc) { MessageBox.Show(WMISys.GetString("WMISE_Exception", exc.Message, exc.StackTrace)); throw(exc); } }