FMX ListView с LiveBindings - PullRequest
       56

FMX ListView с LiveBindings

0 голосов
/ 05 октября 2018

Я разрабатываю приложение FMX (Android) с использованием ListView в Delphi 10.2.3.У меня есть Listview live (связанный) с ClientDataSet с (Synch->*).Это работает очень хорошо, и любые изменения в Listview распространяются на ClientDataSet, включая обработчики событий ClientDataSet's, такие как BeforeUpdate, Post и AfterScroll.

Теперь, когда я перемещаю указатель записи в ClientDataSet программно , Listview не синхронизирует с изменением.Кажется, Livebinding работает только «в одну сторону» (от пользовательского интерфейса до набора данных).

Как я могу заставить Listview следовать ClientDataSet, как это делается в VCL при использовании DataSource?

// 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 Ответ

0 голосов
/ 06 октября 2018

Простой ответ на этот вопрос - выполнить

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

. Кажется, что при перемещении указателя записи с помощью CDSData.Next не выполняется синхронизация обратно в режим Live (Bound) Listview, используяlocate делает.

...