-
-
Notifications
You must be signed in to change notification settings - Fork 43
ProgressBarViewItem
The ProgressBarViewItem package integrates a UI progress for long running tasks.
This is a platform agnostic module that registers a ProgressViewItem into the ViewItems of your application.
.
This is a ViewItem and is not bound to a property. To add it in a DetailView Layout you have first to add it in the IModelViewItems collection.
Let's assume you have a long running task such as an import which is done in a different thread and an asynchronous sequence emits its progress. To bind the sequence to a DetailView ProgressViewItem we have to:
var progressBarViewItem = View.GetItems<ProgressBarViewItemBase>().First();
progressBarViewItem.Start();The ProgressViewItem implements the IObserver<decimal> so after start the binding becomes as simple as:
await signal.Cast<Decimal>.Do(progressBarViewItem);The ProgressBarViewItem features completion notification which can be configured like:
progressBarViewItem.SetFinishOptions(new MessageOptions(){});
Possible future improvements:
Any other need you may have.
Let me know if you want me to implement them for you.
The module is integrated with the ExcelImporter.
Next we see how it looks on Desktop:

and the same view on the web:
-
First you need the nuget package so issue this command to the
VS Nuget package consoleInstall-Package Xpand.XAF.Modules.ProgressBarViewItem.The above only references the dependencies and nexts steps are mandatory.
-
Ways to Register a Module or simply add the next call to your module constructor
RequiredModuleTypes.Add(typeof(Xpand.XAF.Modules.ProgressBarViewItemModule));
The module is not bound to DevExpress versioning, which means you can use the latest version with your old DevExpress projects Read more.
The module follows the Nuget Version Basics.
.NetFramework: net461
| DevExpress.ExpressApp | Any |
| Fasterflect.Xpand | 2.0.7 |
| JetBrains.Annotations | 2020.1.0 |
| System.Reactive | 4.4.1 |
| System.ValueTuple | 4.5.0 |
| Xpand.Extensions | 2.202.57 |
| Xpand.Extensions.Reactive | 2.202.58 |
| Xpand.Extensions.XAF | 2.202.58 |
| Xpand.XAF.Modules.Reactive | 2.202.58 |
| Xpand.VersionConverter | 2.202.10 |
To Step in the source code you need to enable Source Server support in your Visual Studio/Tools/Options/Debugging/Enable Source Server Support. See also How to boost your DevExpress Debugging Experience.
If the package is installed in a way that you do not have access to uninstall it, then you can unload it with the next call at the constructor of your module.
Xpand.XAF.Modules.Reactive.ReactiveModuleBase.Unload(typeof(Xpand.XAF.Modules.ProgressBarViewItem.ProgressBarViewItemModule))The module is tested on Azure for each build with these tests. All Tests run as per our Compatibility Matrix


