From 7d546a808637b866986e8f8ef4753dbf547eb5bf Mon Sep 17 00:00:00 2001 From: DevExpressExampleBot Date: Fri, 7 Nov 2025 15:53:47 +0400 Subject: [PATCH 1/9] README auto update [skip ci] --- Readme.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Readme.md b/Readme.md index 1eab7b5..87a826f 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,4 @@ -![](https://img.shields.io/endpoint?url=https://codecentral.devexpress.com/api/v1/VersionRange/128593846/25.2.1%2B) [![](https://img.shields.io/badge/Open_in_DevExpress_Support_Center-FF7200?style=flat-square&logo=DevExpress&logoColor=white)](https://supportcenter.devexpress.com/ticket/details/E1276) [![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183) [![](https://img.shields.io/badge/💬_Leave_Feedback-feecdd?style=flat-square)](#does-this-example-address-your-development-requirementsobjectives) From 55dd6018f06f9b5d995816898d3800d2ba62d868 Mon Sep 17 00:00:00 2001 From: Manuel Sanchez Date: Fri, 7 Nov 2025 14:05:50 +0100 Subject: [PATCH 2/9] Replaced old win/Blazor Controllers with a new platform agnostic controller --- .../BlazorSortListViewController.cs | 16 --------------- .../AgnosticSortListViewController.cs | 20 +++++++++++++++++++ .../Controllers/WinSortListViewController.cs | 14 ------------- .../BlazorSortListViewController.cs | 16 --------------- .../AgnosticSortListViewController.cs | 19 ++++++++++++++++++ .../Controllers/WinSortListViewController.cs | 13 ------------ 6 files changed, 39 insertions(+), 59 deletions(-) delete mode 100644 CS/EFCore/SortListViewEF/SortListViewEF.Blazor.Server/Controllers/BlazorSortListViewController.cs create mode 100644 CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/AgnosticSortListViewController.cs delete mode 100644 CS/EFCore/SortListViewEF/SortListViewEF.Win/Controllers/WinSortListViewController.cs delete mode 100644 CS/XPO/SortListView/SortListView.Blazor.Server/Controllers/BlazorSortListViewController.cs create mode 100644 CS/XPO/SortListView/SortListView.Module/Controllers/AgnosticSortListViewController.cs delete mode 100644 CS/XPO/SortListView/SortListView.Win/Controllers/WinSortListViewController.cs diff --git a/CS/EFCore/SortListViewEF/SortListViewEF.Blazor.Server/Controllers/BlazorSortListViewController.cs b/CS/EFCore/SortListViewEF/SortListViewEF.Blazor.Server/Controllers/BlazorSortListViewController.cs deleted file mode 100644 index dd4d81b..0000000 --- a/CS/EFCore/SortListViewEF/SortListViewEF.Blazor.Server/Controllers/BlazorSortListViewController.cs +++ /dev/null @@ -1,16 +0,0 @@ -using DevExpress.ExpressApp.Blazor.Editors; -using DevExpress.ExpressApp.Blazor.Editors.Models; -using SortListViewEF.Module; - -namespace SortListViewEF.Blazor.Server.Controllers { - public class BlazorSortListViewController : SortListViewControllerBase { - protected override void OnViewControlsCreated() { - base.OnViewControlsCreated(); - if(View.Editor is DxGridListEditor gridListEditor) { - foreach(DxGridDataColumnModel columnModel in gridListEditor.GridDataColumnModels) { - columnModel.AllowSort = false; - } - } - } - } -} \ No newline at end of file diff --git a/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/AgnosticSortListViewController.cs b/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/AgnosticSortListViewController.cs new file mode 100644 index 0000000..081b26f --- /dev/null +++ b/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/AgnosticSortListViewController.cs @@ -0,0 +1,20 @@ +using DevExpress.ExpressApp.Editors; +using SortListView.Module; + +namespace SortListViewEF.Module.Controllers +{ + public partial class AgnosticSortListViewController : SortListViewControllerBase + { + protected override void OnViewControlsCreated() + { + base.OnViewControlsCreated(); + if (View.Editor is ColumnsListEditor listEditor) + { + foreach (var column in listEditor.Columns) + { + column.AllowSortingChange = false; + } + } + } + } +} diff --git a/CS/EFCore/SortListViewEF/SortListViewEF.Win/Controllers/WinSortListViewController.cs b/CS/EFCore/SortListViewEF/SortListViewEF.Win/Controllers/WinSortListViewController.cs deleted file mode 100644 index 180137b..0000000 --- a/CS/EFCore/SortListViewEF/SortListViewEF.Win/Controllers/WinSortListViewController.cs +++ /dev/null @@ -1,14 +0,0 @@ -using DevExpress.ExpressApp; -using DevExpress.ExpressApp.Win.Editors; -using SortListViewEF.Module; - -namespace SortListViewEF.Win.Controllers { - public class WinSortListViewController : SortListViewControllerBase { - protected override void OnViewControlsCreated() { - base.OnViewControlsCreated(); - if(View.Editor is GridListEditor gridListEditor) { - gridListEditor.GridView.OptionsCustomization.AllowSort = false; - } - } - } -} diff --git a/CS/XPO/SortListView/SortListView.Blazor.Server/Controllers/BlazorSortListViewController.cs b/CS/XPO/SortListView/SortListView.Blazor.Server/Controllers/BlazorSortListViewController.cs deleted file mode 100644 index 485edd5..0000000 --- a/CS/XPO/SortListView/SortListView.Blazor.Server/Controllers/BlazorSortListViewController.cs +++ /dev/null @@ -1,16 +0,0 @@ -using DevExpress.ExpressApp.Blazor.Editors; -using DevExpress.ExpressApp.Blazor.Editors.Models; -using SortListView.Module; - -namespace SortListView.Blazor.Server.Controllers { - public class BlazorSortListViewController : SortListViewControllerBase { - protected override void OnViewControlsCreated() { - base.OnViewControlsCreated(); - if(View.Editor is DxGridListEditor gridListEditor) { - foreach(DxGridDataColumnModel columnModel in gridListEditor.GridDataColumnModels) { - columnModel.AllowSort = false; - } - } - } - } -} \ No newline at end of file diff --git a/CS/XPO/SortListView/SortListView.Module/Controllers/AgnosticSortListViewController.cs b/CS/XPO/SortListView/SortListView.Module/Controllers/AgnosticSortListViewController.cs new file mode 100644 index 0000000..db5a3c8 --- /dev/null +++ b/CS/XPO/SortListView/SortListView.Module/Controllers/AgnosticSortListViewController.cs @@ -0,0 +1,19 @@ +using DevExpress.ExpressApp.Editors; + +namespace SortListViewEF.Module.Controllers +{ + public partial class AgnosticSortListViewController : SortListViewControllerBase + { + protected override void OnViewControlsCreated() + { + base.OnViewControlsCreated(); + if (View.Editor is ColumnsListEditor listEditor) + { + foreach (var column in listEditor.Columns) + { + column.AllowSortingChange = false; + } + } + } + } +} diff --git a/CS/XPO/SortListView/SortListView.Win/Controllers/WinSortListViewController.cs b/CS/XPO/SortListView/SortListView.Win/Controllers/WinSortListViewController.cs deleted file mode 100644 index 84d5cd7..0000000 --- a/CS/XPO/SortListView/SortListView.Win/Controllers/WinSortListViewController.cs +++ /dev/null @@ -1,13 +0,0 @@ -using DevExpress.ExpressApp.Win.Editors; -using SortListView.Module; - -namespace SortListView.Win.Controllers { - public class WinSortListViewController : SortListViewControllerBase { - protected override void OnViewControlsCreated() { - base.OnViewControlsCreated(); - if(View.Editor is GridListEditor gridListEditor) { - gridListEditor.GridView.OptionsCustomization.AllowSort = false; - } - } - } -} From b77f821632b4460a4c0d36fa1d12afad5913e094 Mon Sep 17 00:00:00 2001 From: Manuel Sanchez Date: Fri, 7 Nov 2025 20:49:05 +0100 Subject: [PATCH 3/9] Moved code to original module controller and refactor --- .../AgnosticSortListViewController.cs | 20 -------- .../Controllers/SortListViewController.cs | 47 ++++++++++++------- .../AgnosticSortListViewController.cs | 19 -------- .../Controllers/SortListViewController.cs | 46 +++++++++++------- 4 files changed, 60 insertions(+), 72 deletions(-) delete mode 100644 CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/AgnosticSortListViewController.cs delete mode 100644 CS/XPO/SortListView/SortListView.Module/Controllers/AgnosticSortListViewController.cs diff --git a/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/AgnosticSortListViewController.cs b/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/AgnosticSortListViewController.cs deleted file mode 100644 index 081b26f..0000000 --- a/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/AgnosticSortListViewController.cs +++ /dev/null @@ -1,20 +0,0 @@ -using DevExpress.ExpressApp.Editors; -using SortListView.Module; - -namespace SortListViewEF.Module.Controllers -{ - public partial class AgnosticSortListViewController : SortListViewControllerBase - { - protected override void OnViewControlsCreated() - { - base.OnViewControlsCreated(); - if (View.Editor is ColumnsListEditor listEditor) - { - foreach (var column in listEditor.Columns) - { - column.AllowSortingChange = false; - } - } - } - } -} diff --git a/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/SortListViewController.cs b/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/SortListViewController.cs index e4cd9ba..d6fce11 100644 --- a/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/SortListViewController.cs +++ b/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/SortListViewController.cs @@ -1,29 +1,42 @@ -using System; using DevExpress.Data; using DevExpress.Xpo.DB; using DevExpress.ExpressApp; using DevExpress.ExpressApp.Model; using SortListView.Module.BusinessObjects; +using DevExpress.ExpressApp.Editors; namespace SortListViewEF.Module { public abstract class SortListViewControllerBase : ObjectViewController { - protected override void OnActivated() { + + string propertyName = nameof(Issue.ModifiedOn); + bool demoFlag = true; + + protected override void OnActivated() + { base.OnActivated(); - string propertyName = nameof(Issue.ModifiedOn); - bool demoFlag = true; - // This code applies a client side sorting. - if(demoFlag) { - IModelColumn columnInfo = View.Model.Columns[propertyName]; - if(columnInfo != null) { - columnInfo.SortIndex = 0; - columnInfo.SortOrder = ColumnSortOrder.Descending; - } - } else { - // This code is used for the server side sorting. - if(View.Model.Sorting[propertyName] == null) { - IModelSortProperty sortProperty = View.Model.Sorting.AddNode(propertyName); - sortProperty.Direction = SortingDirection.Descending; - sortProperty.PropertyName = propertyName; + if (!demoFlag && View.Model.Sorting[propertyName] == null) + { + // This code applies a server side sorting. + IModelSortProperty sortProperty = View.Model.Sorting.AddNode(propertyName); + sortProperty.Direction = SortingDirection.Ascending; + sortProperty.PropertyName = propertyName; + } + } + + protected override void OnViewControlsCreated() + { + base.OnViewControlsCreated(); + if (View.Editor is ColumnsListEditor listEditor) + { + foreach (var columnWrapper in listEditor.Columns) + { + columnWrapper.AllowSortingChange = true; + // This code applies a client side sorting. + if (demoFlag && columnWrapper.PropertyName == propertyName) + { + columnWrapper.SortIndex = 0; + columnWrapper.SortOrder = ColumnSortOrder.Descending; + } } } } diff --git a/CS/XPO/SortListView/SortListView.Module/Controllers/AgnosticSortListViewController.cs b/CS/XPO/SortListView/SortListView.Module/Controllers/AgnosticSortListViewController.cs deleted file mode 100644 index db5a3c8..0000000 --- a/CS/XPO/SortListView/SortListView.Module/Controllers/AgnosticSortListViewController.cs +++ /dev/null @@ -1,19 +0,0 @@ -using DevExpress.ExpressApp.Editors; - -namespace SortListViewEF.Module.Controllers -{ - public partial class AgnosticSortListViewController : SortListViewControllerBase - { - protected override void OnViewControlsCreated() - { - base.OnViewControlsCreated(); - if (View.Editor is ColumnsListEditor listEditor) - { - foreach (var column in listEditor.Columns) - { - column.AllowSortingChange = false; - } - } - } - } -} diff --git a/CS/XPO/SortListView/SortListView.Module/Controllers/SortListViewController.cs b/CS/XPO/SortListView/SortListView.Module/Controllers/SortListViewController.cs index 6577dff..e27b928 100644 --- a/CS/XPO/SortListView/SortListView.Module/Controllers/SortListViewController.cs +++ b/CS/XPO/SortListView/SortListView.Module/Controllers/SortListViewController.cs @@ -1,28 +1,42 @@ using DevExpress.Data; using DevExpress.ExpressApp; +using DevExpress.ExpressApp.Editors; using DevExpress.ExpressApp.Model; using DevExpress.Xpo.DB; using SortListView.Module.BusinessObjects; namespace SortListView.Module { public abstract class SortListViewControllerBase : ObjectViewController { - protected override void OnActivated() { + + string propertyName = nameof(Issue.ModifiedOn); + bool demoFlag = true; + + protected override void OnActivated() + { base.OnActivated(); - string propertyName = nameof(Issue.ModifiedOn); - bool demoFlag = true; - // This code applies a client side sorting. - if(demoFlag) { - IModelColumn columnInfo = View.Model.Columns[propertyName]; - if(columnInfo != null) { - columnInfo.SortIndex = 0; - columnInfo.SortOrder = ColumnSortOrder.Descending; - } - } else { - // This code is used for the server side sorting. - if(View.Model.Sorting[propertyName] == null) { - IModelSortProperty sortProperty = View.Model.Sorting.AddNode(propertyName); - sortProperty.Direction = SortingDirection.Descending; - sortProperty.PropertyName = propertyName; + if (!demoFlag && View.Model.Sorting[propertyName] == null) + { + // This code applies a server side sorting. + IModelSortProperty sortProperty = View.Model.Sorting.AddNode(propertyName); + sortProperty.Direction = SortingDirection.Ascending; + sortProperty.PropertyName = propertyName; + } + } + + protected override void OnViewControlsCreated() + { + base.OnViewControlsCreated(); + if (View.Editor is ColumnsListEditor listEditor) + { + foreach (var columnWrapper in listEditor.Columns) + { + columnWrapper.AllowSortingChange = true; + // This code applies a client side sorting. + if (demoFlag && columnWrapper.PropertyName == propertyName) + { + columnWrapper.SortIndex = 0; + columnWrapper.SortOrder = ColumnSortOrder.Descending; + } } } } From 86ec37950c7cbeabde30bf85962465743178e75a Mon Sep 17 00:00:00 2001 From: Manuel Sanchez Date: Fri, 7 Nov 2025 21:25:25 +0100 Subject: [PATCH 4/9] Restored Readme.md --- Readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Readme.md b/Readme.md index 87a826f..1eab7b5 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,5 @@ +![](https://img.shields.io/endpoint?url=https://codecentral.devexpress.com/api/v1/VersionRange/128593846/25.2.1%2B) [![](https://img.shields.io/badge/Open_in_DevExpress_Support_Center-FF7200?style=flat-square&logo=DevExpress&logoColor=white)](https://supportcenter.devexpress.com/ticket/details/E1276) [![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183) [![](https://img.shields.io/badge/💬_Leave_Feedback-feecdd?style=flat-square)](#does-this-example-address-your-development-requirementsobjectives) From 0b1aee3161043ca30e2718f3bb8a2ffab7ac8295 Mon Sep 17 00:00:00 2001 From: DevExpressExampleBot Date: Sat, 8 Nov 2025 00:27:16 +0400 Subject: [PATCH 5/9] README auto update [skip ci] --- Readme.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Readme.md b/Readme.md index 1eab7b5..87a826f 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,4 @@ -![](https://img.shields.io/endpoint?url=https://codecentral.devexpress.com/api/v1/VersionRange/128593846/25.2.1%2B) [![](https://img.shields.io/badge/Open_in_DevExpress_Support_Center-FF7200?style=flat-square&logo=DevExpress&logoColor=white)](https://supportcenter.devexpress.com/ticket/details/E1276) [![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183) [![](https://img.shields.io/badge/💬_Leave_Feedback-feecdd?style=flat-square)](#does-this-example-address-your-development-requirementsobjectives) From 32fd66d45ebd542d23dce4da687d8715953e399d Mon Sep 17 00:00:00 2001 From: Manuel Sanchez Date: Fri, 21 Nov 2025 18:59:17 +0100 Subject: [PATCH 6/9] Removed abstract & set default AllowSortingChange = false as in the original controllers. --- .../Controllers/SortListViewController.cs | 4 ++-- .../SortListView.Module/Controllers/SortListViewController.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/SortListViewController.cs b/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/SortListViewController.cs index d6fce11..5dbcb89 100644 --- a/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/SortListViewController.cs +++ b/CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/SortListViewController.cs @@ -6,7 +6,7 @@ using DevExpress.ExpressApp.Editors; namespace SortListViewEF.Module { - public abstract class SortListViewControllerBase : ObjectViewController { + public class SortListViewController : ObjectViewController { string propertyName = nameof(Issue.ModifiedOn); bool demoFlag = true; @@ -30,7 +30,7 @@ protected override void OnViewControlsCreated() { foreach (var columnWrapper in listEditor.Columns) { - columnWrapper.AllowSortingChange = true; + columnWrapper.AllowSortingChange = false; // This code applies a client side sorting. if (demoFlag && columnWrapper.PropertyName == propertyName) { diff --git a/CS/XPO/SortListView/SortListView.Module/Controllers/SortListViewController.cs b/CS/XPO/SortListView/SortListView.Module/Controllers/SortListViewController.cs index e27b928..ce69f04 100644 --- a/CS/XPO/SortListView/SortListView.Module/Controllers/SortListViewController.cs +++ b/CS/XPO/SortListView/SortListView.Module/Controllers/SortListViewController.cs @@ -6,7 +6,7 @@ using SortListView.Module.BusinessObjects; namespace SortListView.Module { - public abstract class SortListViewControllerBase : ObjectViewController { + public class SortListViewController : ObjectViewController { string propertyName = nameof(Issue.ModifiedOn); bool demoFlag = true; @@ -30,7 +30,7 @@ protected override void OnViewControlsCreated() { foreach (var columnWrapper in listEditor.Columns) { - columnWrapper.AllowSortingChange = true; + columnWrapper.AllowSortingChange = false; // This code applies a client side sorting. if (demoFlag && columnWrapper.PropertyName == propertyName) { From 90c90da57fed609009468b49d963149e83ac5152 Mon Sep 17 00:00:00 2001 From: Manuel Sanchez Date: Mon, 15 Dec 2025 09:29:48 +0100 Subject: [PATCH 7/9] Modified Readme with new API version information. --- Readme.md | 86 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 54 insertions(+), 32 deletions(-) diff --git a/Readme.md b/Readme.md index 87a826f..35c6fde 100644 --- a/Readme.md +++ b/Readme.md @@ -12,59 +12,83 @@ This example sorts list view data by a class property and prevents users from mo ## Implementation Details -1. Create a view controller in the application model and configure sorting settings for the list view's column: +1. Create a view controller in the application model and configure sorting settings for the list view's columns and editor controls: _File to review:_ [SortListViewController.cs](CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/SortListViewController.cs) ```cs - protected override void OnActivated() { - base.OnActivated(); + public class SortListViewController : ObjectViewController { + string propertyName = nameof(Issue.ModifiedOn); bool demoFlag = true; - // This code applies a client side sorting. - if(demoFlag) { - IModelColumn columnInfo = View.Model.Columns[propertyName]; - if(columnInfo != null) { - columnInfo.SortIndex = 0; - columnInfo.SortOrder = ColumnSortOrder.Descending; - } - } else { - // This code is used for the server side sorting. - if(View.Model.Sorting[propertyName] == null) { + + protected override void OnActivated() + { + base.OnActivated(); + if (!demoFlag && View.Model.Sorting[propertyName] == null) + { + // This code applies a server side sorting. IModelSortProperty sortProperty = View.Model.Sorting.AddNode(propertyName); - sortProperty.Direction = SortingDirection.Descending; + sortProperty.Direction = SortingDirection.Ascending; sortProperty.PropertyName = propertyName; } } + + protected override void OnViewControlsCreated() + { + base.OnViewControlsCreated(); + if (View.Editor is ColumnsListEditor listEditor) + { + foreach (var columnWrapper in listEditor.Columns) + { + columnWrapper.AllowSortingChange = false; + // This code applies a client side sorting. + if (demoFlag && columnWrapper.PropertyName == propertyName) + { + columnWrapper.SortIndex = 0; + columnWrapper.SortOrder = ColumnSortOrder.Descending; + } + } + } + } } ``` -2. Implement platform-dependent controllers that disable the sorting functionality in underlying grid controls: +This approach allows you to sort both nested and root list views, and works if server mode is enabled in the list view. + +## Approach using platform-dependent API: +### Blazor: - _File to review:_ [BlazorSortListViewController.cs](CS/EFCore/SortListViewEF/SortListViewEF.Blazor.Server/Controllers/BlazorSortListViewController.cs) ```cs - protected override void OnViewControlsCreated() { + protected override void OnViewControlsCreated() + { base.OnViewControlsCreated(); - if(View.Editor is DxGridListEditor gridListEditor) { - foreach(DxGridDataColumnModel columnModel in gridListEditor.GridDataColumnModels) { - columnModel.AllowSort = false; + if(View.Editor is DxGridListEditor gridListEditor) + { + foreach (DxGridColumnWrapper column in gridListEditor.Columns) + { + column.AllowSortingChange = false; } } } ``` - _File to review:_ [WinSortListViewController.cs](CS/EFCore/SortListViewEF/SortListViewEF.Win/Controllers/WinSortListViewController.cs) +### Win: ```cs - protected override void OnViewControlsCreated() { + protected override void OnViewControlsCreated() + { base.OnViewControlsCreated(); - if(View.Editor is GridListEditor gridListEditor) { - gridListEditor.GridView.OptionsCustomization.AllowSort = false; + if(View.Editor is GridListEditor gridListEditor && gridListEditor.GridView != null) + { + foreach(WinGridColumnWrapper columnWrapper in gridListEditor.Columns) + { + columnWrapper.Column.OptionsColumn.AllowSort = DevExpress.Utils.DefaultBoolean.False; + columnWrapper.Column.OptionsColumn.AllowGroup = DevExpress.Utils.DefaultBoolean.False; + } } } ``` -This approach allows you to sort both nested and root list views, and works if server mode is enabled in the list view. - ## Documentation - [Application Model (UI Settings Storage)](https://docs.devexpress.com/eXpressAppFramework/112579/ui-construction/application-model-ui-settings-storage) @@ -74,15 +98,13 @@ This approach allows you to sort both nested and root list views, and works if s ## Files to Review - [SortListViewController.cs](CS/EFCore/SortListViewEF/SortListViewEF.Module/Controllers/SortListViewController.cs) -- [BlazorSortListViewController.cs](CS/EFCore/SortListViewEF/SortListViewEF.Blazor.Server/Controllers/BlazorSortListViewController.cs) -- [WinSortListViewController.cs](CS/EFCore/SortListViewEF/SortListViewEF.Win/Controllers/WinSortListViewController.cs) -## Does this example address your development requirements/objectives? - -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=xaf-how-to-sort-a-listview-in-code&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=xaf-how-to-sort-a-listview-in-code&~~~was_helpful=no) - +## Does this example address your development requirements/objectives? + +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=xaf-how-to-sort-a-listview-in-code&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=xaf-how-to-sort-a-listview-in-code&~~~was_helpful=no) + (you will be redirected to DevExpress.com to submit your response) From 27a4dfa2f81f177b65133b233c9ba2ac6aa52fe5 Mon Sep 17 00:00:00 2001 From: DevExpressExampleBot Date: Mon, 15 Dec 2025 12:34:21 +0400 Subject: [PATCH 8/9] README auto update [skip ci] --- Readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Readme.md b/Readme.md index 35c6fde..69451a5 100644 --- a/Readme.md +++ b/Readme.md @@ -102,9 +102,9 @@ This approach allows you to sort both nested and root list views, and works if s -## Does this example address your development requirements/objectives? - -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=xaf-how-to-sort-a-listview-in-code&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=xaf-how-to-sort-a-listview-in-code&~~~was_helpful=no) - +## Does this example address your development requirements/objectives? + +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=xaf-how-to-sort-a-listview-in-code&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=xaf-how-to-sort-a-listview-in-code&~~~was_helpful=no) + (you will be redirected to DevExpress.com to submit your response) From a67a048b53e616142e18c46b63a3f62b500a7c66 Mon Sep 17 00:00:00 2001 From: Manuel Sanchez Date: Mon, 15 Dec 2025 10:49:50 +0100 Subject: [PATCH 9/9] Removed unnecesary BusinessClassLibraryCustomizationModule from Module.cs --- CS/EFCore/SortListViewEF/SortListViewEF.Module/Module.cs | 1 - CS/XPO/SortListView/SortListView.Module/Module.cs | 1 - 2 files changed, 2 deletions(-) diff --git a/CS/EFCore/SortListViewEF/SortListViewEF.Module/Module.cs b/CS/EFCore/SortListViewEF/SortListViewEF.Module/Module.cs index 4e38f1e..a8f0997 100644 --- a/CS/EFCore/SortListViewEF/SortListViewEF.Module/Module.cs +++ b/CS/EFCore/SortListViewEF/SortListViewEF.Module/Module.cs @@ -19,7 +19,6 @@ public SortListViewEFModule() { // SortListViewEFModule // RequiredModuleTypes.Add(typeof(DevExpress.ExpressApp.SystemModule.SystemModule)); - RequiredModuleTypes.Add(typeof(DevExpress.ExpressApp.Objects.BusinessClassLibraryCustomizationModule)); } public override IEnumerable GetModuleUpdaters(IObjectSpace objectSpace, Version versionFromDB) { ModuleUpdater updater = new DatabaseUpdate.Updater(objectSpace, versionFromDB); diff --git a/CS/XPO/SortListView/SortListView.Module/Module.cs b/CS/XPO/SortListView/SortListView.Module/Module.cs index 9431b24..d9e0a51 100644 --- a/CS/XPO/SortListView/SortListView.Module/Module.cs +++ b/CS/XPO/SortListView/SortListView.Module/Module.cs @@ -22,7 +22,6 @@ public SortListViewModule() { // SortListViewModule // RequiredModuleTypes.Add(typeof(DevExpress.ExpressApp.SystemModule.SystemModule)); - RequiredModuleTypes.Add(typeof(DevExpress.ExpressApp.Objects.BusinessClassLibraryCustomizationModule)); } public override IEnumerable GetModuleUpdaters(IObjectSpace objectSpace, Version versionFromDB) { ModuleUpdater updater = new DatabaseUpdate.Updater(objectSpace, versionFromDB);