代码之家  ›  专栏  ›  技术社区  ›  Freddie Bell

带有livebindings的fmx列表视图

  •  0
  • Freddie Bell  · 技术社区  · 6 年前

    我正在开发一个fmx(android)应用程序,使用 ListView 在Delphi10.2.3中。我有 Listview 生活在 ClientDataSet 具有 (Synch->*) . 这很有效,而且 控件 传播到 客户端数据集 ,包括 ClientDataSet's 事件处理程序,例如 BeforeUpdate , Post AfterScroll .

    现在当我移动clientdataset中的记录指针时 以编程方式 , the 控件 不同步 随着变化。看来 Livebinding 只能“单向”工作(从ui到数据集)。

    我怎样才能 控件 跟随 客户端数据集 ,它在VCL中使用数据源时的方式?

    // here I expect the see the selected item start at the first item 
    // in the UI in index order and move quickly down through the 
    // list until it stops at the last one. This doesn't happen. The UI remains
    // unaffected.
    ClientModule.CDSData.First;
    while not ClientModule.CDSData.Eof do
    begin
       ClientModule.CDSData.Next;
       Sleep(100);
    end;
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Freddie Bell    6 年前

    这个问题的简单答案是

    if ClientModule.CDSData.Locate('PKID', VarArrayOf([PKIDValue]), []) then
    

    似乎在移动记录指针时 CDSData.Next 不同步回Live(绑定) Listview ,使用 locate 做。

    推荐文章