В настоящее время я использую Delphi XE2 и слышал об их новом Live Binding с автоматическими обновлениями в XE3 (нет необходимости вызывать Notify(), как в XE2).
в С# или в Delphi XE2 мы должны реализовать INotifyPropertyChanged
(Notify();
в Delphi), и этот подход действительно имеет смысл, поскольку мы имеем полный контроль над содержимым, которое нужно обновить, и когда обновлять его, чтобы мы могли нормально легко настроить производительность и реализовать виртуализацию.
Но я просто хочу знать, как это работает, какой механизм они сделали для его реализации, и я не знаю, как они это сделали, следуя предположениям, которые могли использоваться для реализации автоматических обновлений.
-
Таймер: таймер часто гаснет и обновляет все данные
Очень низкая производительность без виртуализации
-
Функция уровня компилятора: все связанные с
notify() events
коды, реализованные компилятором автоматически magicalМножество над головами
-
Somme другой подход:
Пожалуйста, помогите мне определить, как они это реализовали.
В настоящее время я использую пробную версию XE3, поэтому у меня нет доступа к исходному коду, ваши ответы помогут мне решить, следует ли переключаться на новые функции или нет.
У меня есть класс (элемент коллекции) с 400 свойствами для привязки (не все из них все время), поэтому производительность действительно играет важную роль в стабильности моего приложения.