使用devExpress的cxGrid,我希望能够在鼠标离开刚刚编辑的Cell或当按Enter时,知道用户输入的新值,在OnEditValueChanged中,得到的都是原来的值,而不是新输入的值。
请问如何解决
在cxGrid中,我使用GridtableView,命名tbvTest,建立了三列:tbvTestColumn1,tbvTestColumn2,tbvTestColumn2
在Column3的onGetProperties中在不同行建立了不同的Editor
代码如下:unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, cxCheckComboBox, cxGridCustomTableView,
  cxGridTableView, cxControls, cxGridCustomView, cxClasses, cxGridLevel,
  cxGrid, Menus, cxLookAndFeelPainters, StdCtrls, cxButtons, cxCheckGroup,
  cxRadioGroup,cxCheckBox;type
  TForm1 = class(TForm)
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    tvTest: TcxGridTableView;
    tvTestColumn1: TcxGridColumn;
    tvTestColumn2: TcxGridColumn;
    tvTestColumn3: TcxGridColumn;
    cxButton1: TcxButton;
    procedure cxButton1Click(Sender: TObject);
    procedure tvTestColumn3GetProperties(Sender: TcxCustomGridTableItem;
      ARecord: TcxCustomGridRecord;
      var AProperties: TcxCustomEditProperties);
    procedure tvTestEditValueChanged(Sender: TcxCustomGridTableView;
      AItem: TcxCustomGridTableItem);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.cxButton1Click(Sender: TObject);
var
  i:integer;
begin
  tvTest.DataController.RecordCount:=5;
  for i:=0 to 4 do begin
    tvTest.DataController.SetValue(i,1,'阿斯顿');
    tvTest.DataController.SetValue(i,2,'A');
  end;
end;procedure TForm1.tvTestColumn3GetProperties(Sender: TcxCustomGridTableItem;
  ARecord: TcxCustomGridRecord; var AProperties: TcxCustomEditProperties);
var
  c:TcxCheckgroupItem;
  p:TcxCheckGroupProperties;
  a:TcxRadioGroupProperties;
begin
  case ARecord.RecordIndex  of
    0: begin
         p:=TcxCheckGroupProperties.Create(self);
         (tvTestColumn3.Properties as TcxCheckgroupProperties).Items.Clear;
         c:=p.Items.Add;
         c.Caption:='你好';
         c:=p.Items.Add;
         c.Caption:='我好';
         c:=p.Items.Add;
         c.Caption:='他也会有';
         AProperties:=p;
       end;
    1: begin
         p:=TcxCheckGroupProperties.Create(self);
         (tvTestColumn3.Properties as TcxCheckgroupProperties).Items.Clear;
         c:=p.Items.Add;
         c.Caption:='你好';
         c:=p.Items.Add;
         c.Caption:='我好';
         AProperties:=p;
       end;
    2: begin
         a:=TcxRadioGroupProperties.Create(self);
         a.Items.Add.Caption:='天内';
         a.Items.Add.Caption:='功能';
         AProperties:=a;
       end;
  end;
end;procedure TForm1.tvTestEditValueChanged(Sender: TcxCustomGridTableView;
  AItem: TcxCustomGridTableItem);
var
  i:integer;
  s:string;
begin
  i:=tvTest.DataController.GetEditingRecordIndex;
  tvTest.ViewData.GetDisplayText(i,2,s);
  showmessage(s);
//  showmessage(Sender.DataController.GetDisplayText(i,2));
end;
end.