Skip to main content
.NET 6.0+

DevExpress v24.1 Update — Your Feedback Matters

Our What's New in v24.1 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

XafApplication.OptimizedControllersCreation Property

Disables the instantiation of Controllers that will never be activated in nested List Views.

Namespace: DevExpress.ExpressApp

Assembly: DevExpress.ExpressApp.v24.1.dll

NuGet Package: DevExpress.ExpressApp

#Declaration

[Browsable(false)]
[DefaultValue(false)]
public bool OptimizedControllersCreation { get; set; }

#Property Value

Type Default Description
Boolean false

true, if the optimized controllers creation is enabled; otherwise, false.

#Remarks

In applications created using the Solution Wizard version 17.1 or higher, 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:

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