我使用objectlistview(2.9.1),我想在输入不合格时回滚CellEditor.Text的值,并立即在UI上显示。 代码:
private void olv_CellEditFinishing(object sender, CellEditEventArgs e)
{
int iQuantity = 0;
int iPreviousQuantity = order.Quantity.HasValue ? order.Quantity.Value : 0;
string sCellText = ((ObjectListView)sender).CellEditor.Text;
if (Int32.TryParse(sCellText, out iQuantity) && iQuantity >100)
{
// pop up a message box
//Here I want to rollback the previouse quantity
((ObjectListView) sender).CellEditor.Text = iPreviousQuantity.ToString();
//display the previous quantity immedidatly
this.olv.RefreshItem(e.ListViewItem);
}
}
但这不起作用。
答案 0 :(得分:1)
确保您注册活动:
this.DBTLviewAfter.CellEditFinishing += new BrightIdeasSoftware.CellEditEventHandler(this.DBTLviewAfter_CellEditFinishing);
这是我的事件功能:
private void DBTLviewAfter_CellEditFinishing(object sender, CellEditEventArgs e)
{
string toBeEditingStr = (string)e.NewValue;
if(toBeEditingStr == "")
{
e.Cancel = true;
}
}
如果编辑后的值为空,则不会更改单元格。