[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Collapse]eXpressApp Framework
 [Expand]Fundamentals
 [Expand]Getting Started
 [Expand]Concepts
 [Expand]Design-Time Features
 [Expand]Deployment
 [Expand]Task-Based Help
  Frequently Asked Questions (FAQ)
 [Collapse]API Reference
  [Expand]DevExpress.EasyTest.Framework
  [Expand]DevExpress.ExpressApp
  [Expand]DevExpress.ExpressApp.Actions
  [Expand]DevExpress.ExpressApp.AuditTrail
  [Expand]DevExpress.ExpressApp.Chart
  [Expand]DevExpress.ExpressApp.Chart.Web
  [Expand]DevExpress.ExpressApp.Chart.Win
  [Expand]DevExpress.ExpressApp.CloneObject
  [Expand]DevExpress.ExpressApp.ConditionalAppearance
  [Expand]DevExpress.ExpressApp.Dashboards
  [Expand]DevExpress.ExpressApp.Dashboards.Web
  [Expand]DevExpress.ExpressApp.Dashboards.Win
  [Expand]DevExpress.ExpressApp.Data
  [Expand]DevExpress.ExpressApp.DC
  [Expand]DevExpress.ExpressApp.DC.ClassGeneration
  [Expand]DevExpress.ExpressApp.Editors
  [Expand]DevExpress.ExpressApp.EF
  [Expand]DevExpress.ExpressApp.EF.Utils
  [Expand]DevExpress.ExpressApp.FileAttachments.Web
  [Expand]DevExpress.ExpressApp.FileAttachments.Win
  [Expand]DevExpress.ExpressApp.Filtering
  [Expand]DevExpress.ExpressApp.HtmlPropertyEditor.Web
  [Expand]DevExpress.ExpressApp.HtmlPropertyEditor.Win
  [Expand]DevExpress.ExpressApp.Kpi
  [Expand]DevExpress.ExpressApp.Layout
  [Expand]DevExpress.ExpressApp.Maps.Mobile
  [Expand]DevExpress.ExpressApp.Maps.Mobile.Editors
  [Expand]DevExpress.ExpressApp.Maps.Web
  [Expand]DevExpress.ExpressApp.Maps.Web.Helpers
  [Expand]DevExpress.ExpressApp.MiddleTier
  [Expand]DevExpress.ExpressApp.Mobile
  [Expand]DevExpress.ExpressApp.Mobile.Editors
  [Expand]DevExpress.ExpressApp.Mobile.MobileModel
  [Expand]DevExpress.ExpressApp.Mobile.SystemModule
  [Expand]DevExpress.ExpressApp.Mobile.Templates
  [Collapse]DevExpress.ExpressApp.Model
    ActionContainerOrientation Enumeration
    AllowAdd Enumeration
   [Expand]DetailViewLayoutAttribute Class
    GroupInterval Enumeration
   [Expand]IModelAction Interface
   [Expand]IModelActionContainerViewItem Interface
   [Expand]IModelActionDesign Interface
   [Expand]IModelActions Interface
   [Expand]IModelApplication Interface
   [Expand]IModelAssemblyResourceImageSource Interface
   [Expand]IModelBand Interface
   [Expand]IModelBandsLayout Interface
   [Expand]IModelBaseChoiceActionItem Interface
   [Expand]IModelBOModel Interface
   [Expand]IModelBOModelClassMembers Interface
   [Expand]IModelChoiceActionItem Interface
   [Expand]IModelChoiceActionItemChildItemsDisplayStyle Interface
   [Expand]IModelChoiceActionItems Interface
   [Expand]IModelClass Interface
   [Expand]IModelClassDashboardsVisibility Interface
   [Expand]IModelClassInterfaces Interface
   [Expand]IModelClassReportsVisibility Interface
   [Expand]IModelColumn Interface
   [Expand]IModelColumns Interface
   [Expand]IModelColumnSummary Interface
   [Expand]IModelColumnSummaryItem Interface
   [Expand]IModelCommonMemberViewItem Interface
   [Expand]IModelCompositeView Interface
   [Expand]IModelControlDetailItem Interface
   [Expand]IModelController Interface
   [Expand]IModelControllerActions Interface
   [Expand]IModelControllers Interface
   [Expand]IModelDashboardView Interface
   [Expand]IModelDashboardViewItem Interface
   [Expand]IModelDetailView Interface
   [Expand]IModelDisableReasons Interface
   [Expand]IModelFileImageSource Interface
   [Expand]IModelImageSource Interface
   [Expand]IModelImageSources Interface
   [Expand]IModelInterfaceLink Interface
   [Expand]IModelLayoutElementWithCaption Interface
   [Expand]IModelLayoutElementWithCaptionOptions Interface
   [Expand]IModelLayoutGroup Interface
   [Expand]IModelLayoutItem Interface
   [Expand]IModelLayoutManagerOptions Interface
   [Expand]IModelListView Interface
   [Expand]IModelListViewSplitLayout Interface
   [Expand]IModelLocalization Interface
   [Expand]IModelLocalizationGroup Interface
   [Expand]IModelLocalizationItem Interface
   [Expand]IModelLocalizationItemBase Interface
   [Expand]IModelMember Interface
   [Expand]IModelMemberViewItem Interface
   [Expand]IModelNode Interface
   [Expand]IModelNodesGeneratorUpdater Interface
   [Expand]IModelObjectView Interface
   [Expand]IModelOptions Interface
   [Expand]IModelPropertyEditor Interface
   [Expand]IModelReason Interface
   [Expand]IModelSchemaModule Interface
   [Expand]IModelSchemaModules Interface
   [Expand]IModelSorting Interface
   [Expand]IModelSortProperty Interface
   [Expand]IModelSplitLayout Interface
   [Expand]IModelStaticImage Interface
   [Expand]IModelStaticText Interface
   [Collapse]IModelSynchronizable Interface
     IModelSynchronizable Members
    [Expand]IModelSynchronizable Methods
   [Expand]IModelTabbedGroup Interface
   [Expand]IModelTemplate Interface
   [Expand]IModelTemplates Interface
   [Expand]IModelToolTip Interface
   [Expand]IModelToolTipOptions Interface
   [Expand]IModelView Interface
   [Expand]IModelViewController Interface
   [Expand]IModelViewItem Interface
   [Expand]IModelViewItems Interface
   [Expand]IModelViewLayout Interface
   [Expand]IModelViewLayoutElement Interface
   [Expand]IModelViews Interface
   [Expand]IModelWindowController Interface
   [Expand]ISupportControlAlignment Interface
    LayoutColumnPosition Enumeration
    LayoutGroupType Enumeration
   [Expand]ModelDefaultAttribute Class
   [Expand]ModelNodesGeneratorAttribute Class
   [Expand]ModelNodesGeneratorBase Class
   [Expand]ModelNodesGeneratorUpdater<T> Class
   [Expand]ModelSynchronizer Class
   [Expand]ModelSynchronizer<T, V> Class
   [Expand]ModelSynchronizerList Class
    SummaryType Enumeration
    ViewsOrder Enumeration
  [Expand]DevExpress.ExpressApp.Model.Core
  [Expand]DevExpress.ExpressApp.Model.NodeGenerators
  [Expand]DevExpress.ExpressApp.ModelEditor
  [Expand]DevExpress.ExpressApp.Notifications
  [Expand]DevExpress.ExpressApp.Notifications.Web
  [Expand]DevExpress.ExpressApp.Notifications.Win
  [Expand]DevExpress.ExpressApp.Office.Win
  [Expand]DevExpress.ExpressApp.PivotChart
  [Expand]DevExpress.ExpressApp.PivotChart.Web
  [Expand]DevExpress.ExpressApp.PivotChart.Win
  [Expand]DevExpress.ExpressApp.PivotGrid
  [Expand]DevExpress.ExpressApp.PivotGrid.Web
  [Expand]DevExpress.ExpressApp.PivotGrid.Win
  [Expand]DevExpress.ExpressApp.Reports
  [Expand]DevExpress.ExpressApp.Reports.Web
  [Expand]DevExpress.ExpressApp.Reports.Win
  [Expand]DevExpress.ExpressApp.ReportsV2
  [Expand]DevExpress.ExpressApp.ReportsV2.Mobile
  [Expand]DevExpress.ExpressApp.ReportsV2.Web
  [Expand]DevExpress.ExpressApp.ReportsV2.Win
  [Expand]DevExpress.ExpressApp.Scheduler
  [Expand]DevExpress.ExpressApp.Scheduler.Web
  [Expand]DevExpress.ExpressApp.Scheduler.Win
  [Expand]DevExpress.ExpressApp.ScriptRecorder
  [Expand]DevExpress.ExpressApp.ScriptRecorder.Web
  [Expand]DevExpress.ExpressApp.ScriptRecorder.Win
  [Expand]DevExpress.ExpressApp.Security
  [Expand]DevExpress.ExpressApp.Security.Adapters
  [Expand]DevExpress.ExpressApp.Security.ClientServer.Wcf
  [Expand]DevExpress.ExpressApp.Security.EF.Adapters
  [Expand]DevExpress.ExpressApp.Security.Strategy
  [Expand]DevExpress.ExpressApp.Security.Xpo.Adapters
  [Expand]DevExpress.ExpressApp.StateMachine
  [Expand]DevExpress.ExpressApp.SystemModule
  [Expand]DevExpress.ExpressApp.Templates
  [Expand]DevExpress.ExpressApp.Templates.ActionContainers
  [Expand]DevExpress.ExpressApp.TreeListEditors
  [Expand]DevExpress.ExpressApp.TreeListEditors.Web
  [Expand]DevExpress.ExpressApp.TreeListEditors.Win
  [Expand]DevExpress.ExpressApp.Updating
  [Expand]DevExpress.ExpressApp.Utils
  [Expand]DevExpress.ExpressApp.Validation
  [Expand]DevExpress.ExpressApp.Validation.Web
  [Expand]DevExpress.ExpressApp.Validation.Win
  [Expand]DevExpress.ExpressApp.ViewVariantsModule
  [Expand]DevExpress.ExpressApp.Web
  [Expand]DevExpress.ExpressApp.Web.Controls
  [Expand]DevExpress.ExpressApp.Web.Editors
  [Expand]DevExpress.ExpressApp.Web.Editors.ASPx
  [Expand]DevExpress.ExpressApp.Web.SystemModule
  [Expand]DevExpress.ExpressApp.Web.Templates
  [Expand]DevExpress.ExpressApp.Web.Utils
  [Expand]DevExpress.ExpressApp.Win
  [Expand]DevExpress.ExpressApp.Win.Core
  [Expand]DevExpress.ExpressApp.Win.Editors
  [Expand]DevExpress.ExpressApp.Win.Model
  [Expand]DevExpress.ExpressApp.Win.SystemModule
  [Expand]DevExpress.ExpressApp.Win.Templates
  [Expand]DevExpress.ExpressApp.Win.Templates.Navigation
  [Expand]DevExpress.ExpressApp.Win.Utils
  [Expand]DevExpress.ExpressApp.Workflow
  [Expand]DevExpress.ExpressApp.Workflow.Win
  [Expand]DevExpress.ExpressApp.Xpo
  [Expand]DevExpress.ExpressApp.Xpo.Utils
  [Expand]DevExpress.Persistent.Base
  [Expand]DevExpress.Persistent.Base.General
  [Expand]DevExpress.Persistent.Base.ReportsV2
  [Expand]DevExpress.Persistent.Base.Security
  [Expand]DevExpress.Persistent.BaseImpl
  [Expand]DevExpress.Persistent.BaseImpl.EF
  [Expand]DevExpress.Persistent.BaseImpl.EF.PermissionPolicy
  [Expand]DevExpress.Persistent.BaseImpl.PermissionPolicy
  [Expand]DevExpress.Persistent.Validation
[Expand]eXpress Persistent Objects
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

IModelSynchronizable Interface

Declares members implemented by classes used to persist the configuration of an entity into the Application Model.

Namespace:DevExpress.ExpressApp.Model
Assembly:DevExpress.ExpressApp.v19.1.dll

Expanded Syntax

Expanded Remarks

This interface is implemented by various built-in XAF classes and exposes two methods. The ApplyModel method persists the configuration of an entity into the Application Model. The SynchronizeModel method sets up the entity according to the configuration stored in the Application Model.

One of the built-in classes implementing the IModelSynchronizable interface is the ListEditor class. To ensure correct functioning, each built-in List Editor overrides the protected ListEditor.CreateModelSynchronizer method, to create a specific model synchronizer. This model synchronizer's methods are called by XAF via the ListEditor.ApplyModel and ListEditor.SaveModel methods. You can specify an additional custom model synchronizer to be used by a built-in List Editor by handling its ListEditor.CreateCustomModelSynchronizer event.

When creating a custom model synchronizer, it is recommended that you derive from the ModelSynchronizer<T, V> class. Its implementation already contains the necessary infrastructure code so that you can focus on the model synchronization logic.

Expanded Inheritance Hierarchy

Expanded See Also

Is this topic helpful?​​​​​​​