expressappframework-devexpress-dot-expressapp-dot-xafapplication-199c9697.md
Disables the instantiation of Controllers that will never be activated in nested List Views.
Namespace : DevExpress.ExpressApp
Assembly : DevExpress.ExpressApp.v25.2.dll
NuGet Package : DevExpress.ExpressApp
[Browsable(false)]
[DefaultValue(false)]
public bool OptimizedControllersCreation { get; set; }
<Browsable(False)>
<DefaultValue(False)>
Public Property OptimizedControllersCreation As Boolean
| Type | Default | Description |
|---|---|---|
| Boolean | false |
true, if the optimized controllers creation is enabled; otherwise, false.
|
In applications created using the Template Kit, the default OptimizedControllersCreation property value is true. This happens because the wizard generates new projects with the FrameworkSettings.DefaultSettingsCompatibilityMode property set to Latest.
When the OptimizedControllersCreation property is set to true, View Controllers that are not activated due to ViewController.TargetViewType, ViewController.TargetViewNesting, ViewController.TargetObjectType, or ViewController.TargetViewId restrictions, are not created.
This optimization is supported in Windows and Frames, whose Frame.View does not change during the Frame’s life cycle:
Popup Windows – Windows created using the following approaches:
Nested Frames – Frames created within the following Property Editors and View Items:
MDI Tabs – Windows shown as tabs within the main window with IModelOptionsBlazor.UIType (ASP.NET Core Blazor) and IModelOptionsWin.UIType (Windows Forms) set to TabbedMDI.
If you have a custom Action which changes the Frame’s View (e.g, by setting TargetWindow to Current) in one of the aforementioned cases, set OptimizedControllersCreation to false.
The OptimizedControllersCreation value has no effect when the Frame’s View can be changed (for example, when the Frame is the application’s main window). In this case, the application creates instances of all registered Controller types for this Frame beforehand.
Important
To avoid possible null reference exceptions when accessing an existing Controller from your code, always ensure that the Frame.GetController<ControllerType> method result is not null when the XafApplication.OptimizedControllersCreation property is true.
See Also