objectlistview中的CellEditor值回滚

时间:2016-03-02 09:03:53

标签: c# objectlistview

我使用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);
    }
}

但这不起作用。

1 个答案:

答案 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;
        }
    }

如果编辑后的值为空,则不会更改单元格。