【发布时间】:2015-09-09 20:01:10
【问题描述】:
我使用以下方式来定义和填充带有 TCalendarEdit 辅助单元格的列(这里是界面部分)。如果我需要公开实现,请告诉我。
type
TDynamicRecord = record
Field1, Field2, Field3: string;
DateSBU: TDate;
TimeSBU: TTime;
end;
TDateCell = class(TCalendarEdit)
protected
procedure SetData(const Value: TValue); override;
public
constructor Create(AOwner: TComponent); override;
end;
TDateColumn = class(TColumn)
protected
function CreateCellControl: TStyledControl; override;
public
constructor Create(AOwner: TComponent); override;
end;
代码工作正常,TDateColumn 类型的列可以添加到网格中。
我问了一个question 并为其打开了一个赏金,寻找一种通过LiveBindings 填充用户定义列的技术,但在赏金到期日之前我没有得到任何答案。这就是为什么我现在正在尝试另一种方式。
我声明了一个集合 DynamicData: TList<TDynamicRecord>; 并从数据集中填充它。这种方法在@Mike-Sutton 的answer 和他的博客中得到了非常清楚的解释。我设法做到了这一点。数据在网格及其新定义的列中正确显示。
但现在我遇到了另一个问题。我需要更新有关用户活动的数据集。我尝试了父网格的OnSetValue 和OnEditingDone 事件(根据文档,这些事件将用于数据更新),但奇怪的是它没有触发。
什么是适合更新数据集的正确事件或其他方式?
【问题讨论】:
标签: delphi firemonkey tgrid