delphi live bindings过滤一个组合框

时间:2014-10-02 23:44:56

标签: delphi combobox refresh controls livebindings

我有2个组合框链接到查找类型和子类型表中的值的表。当用户选择第一个我需要过滤第二个数据时。

示例数据:

Tables
type     subtype
vehicle  car
vehicle  truck
vehicle  4-wheeler
boat     v-hull
boat     flat-bottom

在实时绑定之前,您可以在第二个或之前的弹出事件或第一个组合框的关闭或更改事件上过滤并刷新第二个数据查找(子类型)。当我尝试使用实时绑定时,它没有效果。我也尝试使用Bindlist.Notify方法但没有成功。

2 个答案:

答案 0 :(得分:1)

我在主表和子类型表之间设置了主细节关系。选择类型后,它会在主表上设置值并过滤子类型。我切换了LinkFillControlToField上的Active属性,刷新了列表。

procedure TframeEquipmentEdit.cbbSubtypeClassEnter(Sender: TObject);
var i : integer;
begin
LinkFillControlToField10.Active := False;
LinkFillControlToField10.Active := True;
end;

感谢您的意见和帮助

瓦德

答案 1 :(得分:0)

这是我今天正在处理的项目的片段。对于'Letter',请输入'Type','Template'读为'SubType'

procedure TdlgNewTemplate.LetterTypesComboChange(Sender: TObject);
begin
  FTemplatesDs.Filter := Format('TYPE=%d',[LetterType()]);
  FTemplatesDs.Filtered := True;
  PopulateTemplatePaths();
end;

这不是一个实时绑定的例子。使用Livebindings我猜测不需要调用PopulateTemplatePaths,但它所做的只是清除子类型组合框并重新填充。 (相反,Ruru先生在上面提出的方式,我认为)。