简而言之,这就是我作为 firemonkey 应用程序所做的事情,我猜同样应该与 vcl 一起使用:
创建一个新的 firemonkey HD 应用程序
添加两个列表框添加一个编辑和一个按钮(用于输入数据)
Listbox1 -> Livebindings -> 新建 Livebinding -> TBindExpression
名为 BindingsList1 的新组件会自动添加到表单中
编辑新的 bindexpression 属性(对我来说是 BindExpressionListBox11)
Direction = DirBiDirectional
Managed = true
NotifyOutputs = true
ControlExpression = Items
SourceExpression = Items
创建一个 buttonclick 事件(或者您可以将其放入 onChanged 但由于某种原因在添加项目时不会被调用。如果您在列表中选择某些内容,它会被调用):
procedure TForm1.Button1Click(Sender: TObject);
begin
listbox2.Items.Add(edit1.Text);
bindingslist1.Notify(listbox2, '');
end;
现在,每当您将项目添加到 listbox2 时,更改也会反映到 listbox1 中,反之亦然(由于 dirBiDirectional 设置)。如果改为添加到 listbox1,则需要调用:
bindingslist1.Notify(listbox1, '');
希望这有助于您入门。
Embarcadero 也有一些很好的 livebinding 东西 @ http://docwiki.embarcadero.com/RADStudio/en/LiveBindings_in_RAD_Studio