Подтвердить что ты не робот

Прямая привязка с автоматическими обновлениями в XE3 (не нужно вызывать Notify(), как в XE2)

В настоящее время я использую Delphi XE2 и слышал об их новом Live Binding с автоматическими обновлениями в XE3 (нет необходимости вызывать Notify(), как в XE2).

в С# или в Delphi XE2 мы должны реализовать INotifyPropertyChanged (Notify(); в Delphi), и этот подход действительно имеет смысл, поскольку мы имеем полный контроль над содержимым, которое нужно обновить, и когда обновлять его, чтобы мы могли нормально легко настроить производительность и реализовать виртуализацию.

Но я просто хочу знать, как это работает, какой механизм они сделали для его реализации, и я не знаю, как они это сделали, следуя предположениям, которые могли использоваться для реализации автоматических обновлений.

  • Таймер: таймер часто гаснет и обновляет все данные

    Очень низкая производительность без виртуализации

  • Функция уровня компилятора: все связанные с notify() events коды, реализованные компилятором автоматически magical

    Множество над головами

  • Somme другой подход:

Пожалуйста, помогите мне определить, как они это реализовали.

В настоящее время я использую пробную версию XE3, поэтому у меня нет доступа к исходному коду, ваши ответы помогут мне решить, следует ли переключаться на новые функции или нет.
У меня есть класс (элемент коллекции) с 400 свойствами для привязки (не все из них все время), поэтому производительность действительно играет важную роль в стабильности моего приложения.

4b9b3361

Ответ 1

LiveBindings происходит путем привязки любого объекта к другому интересующему объекту на основе некоторых событий. Это происходит с помощью шаблона наблюдателя, когда есть триггер события, инспектор объекта будет уведомлен, и инспектор уведомит уже зарегистрированные компоненты, чтобы отобразить изменения.

Надеюсь, это поможет. Для этого есть много документации, если вы хотите копать.