Интерфейс lEditableObject: поддержка транзакционных модификаций элемента

потребляющий код может i b

Интерфейс LEditableObject Позволяет отложить фиксацию изменений свойств объекта до момента завершения процесса редактирования. Потребляющий код может Ушным Образом объявить, что на объекте начинается операция редактирования, а впоследствии принять либо отвергнуть изменения, сделанные в одном или нескольких свойствах объекта, прежде чем эти изменения станут видимы для другого кода, который может работать с этим объектом, оворя конкретнее, этот интерфейс позволяет, пока объект редактируется, отложить уведомление привязанных элементов управления об изменениях до момента, когда операция редактирования будет завершена вызовом EndEdit. Обычно вам может потребоваться реализовать этот интерфейс, если ваш объект имеет взаимосвязанные свойства или вам нужно верифицировать значения нескольких свойств, прежде чем можно будет сказать, что редактирование дало законное сочетание значений. Если вы разобрались в обсуждении интерфейса ICancelAddNew, То понять IEditableObject Будет несложно. Этот интерфейс позволяет поддерживать ту же транзакционную семантику на уровне индивидуального элемента данных. Если вы когда-нибудь редактировали таблицу данных, привязанную как к сетке, так и к другим элементам управления на форме, то вы видели этот интерфейс в действии. Когда вы изменяете в сетке значение столбца и затем переходите к другому столбцу, изменившееся значение не отражается в других привязанных элементах управления, пока фокус ввода не не покинет строку, которую вы редактируете. Если прежде перемещения фокуса вы нажимаете Esc, сделанные вами изменения откатываются и в отредактированные столбцы снова помещаются старые значения. Когда вы переводите фокус на другую строку, то в этот момент изменения редактируемой строки фиксируются, после чего другие элементы управления на форме будут обновлены, чтобы отразить новые значения. Это объясняется тем, что редактирование значения отдельного столбца рассматривается как часть единственной транзакции с объектом, и операции редактирования не считаются с точки зрения других элементов управления завершенными, пока операция не будет зафиксирована явно. Это происходит, когда вызывается метод EndEdit Объекта, либо сеткой при при смене текущей строки, либо вы явно вызываете его для фиксации изменений.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *