Log In
Home
Support
Demos
Documentation
Blogs
Training
Webinars
[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Collapse]WPF Controls
  Prerequisites
 [Expand]What's Installed
 [Expand]Common Concepts
 [Expand]Controls and Libraries
 [Expand]Localization
  Redistribution and Deployment
  Get More Help
 [Collapse]API Reference
  [Expand]DevExpress.Charts.Designer
  [Expand]DevExpress.Mvvm.UI
  [Expand]DevExpress.Mvvm.UI.Interactivity
  [Expand]DevExpress.Mvvm.UI.ModuleInjection
  [Expand]DevExpress.Xpf.Accordion
  [Expand]DevExpress.Xpf.Bars
  [Expand]DevExpress.Xpf.Carousel
  [Expand]DevExpress.Xpf.Charts
  [Expand]DevExpress.Xpf.Charts.Localization
  [Expand]DevExpress.Xpf.Charts.RangeControlClient
  [Expand]DevExpress.Xpf.ChunkList
  [Expand]DevExpress.Xpf.Controls
  [Expand]DevExpress.Xpf.Core
  [Expand]DevExpress.Xpf.Core.ConditionalFormatting
  [Expand]DevExpress.Xpf.Core.DataSources
  [Collapse]DevExpress.Xpf.Core.ServerMode
   [Expand]EntityInstantFeedbackDataSource Class
   [Expand]EntityServerModeDataSource Class
   [Expand]GetEnumerableEventArgs Class
    GetEnumerableEventHandler Delegate
   [Expand]LinqInstantFeedbackDataSource Class
   [Expand]LinqServerModeDataSource Class
   [Collapse]PLinqInstantFeedbackDataSource Class
     PLinqInstantFeedbackDataSource Members
     PLinqInstantFeedbackDataSource Constructor
    [Expand]PLinqInstantFeedbackDataSource Properties
    [Expand]PLinqInstantFeedbackDataSource Events
    [Expand]PLinqInstantFeedbackDataSource Methods
   [Expand]PLinqServerModeDataSource Class
   [Expand]WcfInstantFeedbackDataSource Class
   [Expand]WcfServerModeDataSource Class
  [Expand]DevExpress.Xpf.Data
  [Expand]DevExpress.Xpf.DataAccess
  [Expand]DevExpress.Xpf.DataAccess.DataSourceWizard
  [Expand]DevExpress.Xpf.Diagram
  [Expand]DevExpress.Xpf.Docking
  [Expand]DevExpress.Xpf.Docking.Base
  [Expand]DevExpress.Xpf.DocumentViewer
  [Expand]DevExpress.Xpf.Editors
  [Expand]DevExpress.Xpf.Editors.DateNavigator
  [Expand]DevExpress.Xpf.Editors.ExpressionEditor
  [Expand]DevExpress.Xpf.Editors.Filtering
  [Expand]DevExpress.Xpf.Editors.Flyout
  [Expand]DevExpress.Xpf.Editors.Flyout.Native
  [Expand]DevExpress.Xpf.Editors.Helpers
  [Expand]DevExpress.Xpf.Editors.Popups
  [Expand]DevExpress.Xpf.Editors.RangeControl
  [Expand]DevExpress.Xpf.Editors.Settings
  [Expand]DevExpress.Xpf.Editors.Validation
  [Expand]DevExpress.Xpf.Gauges
  [Expand]DevExpress.Xpf.Gauges.Localization
  [Expand]DevExpress.Xpf.Grid
  [Expand]DevExpress.Xpf.Grid.ConditionalFormatting
  [Expand]DevExpress.Xpf.Grid.LookUp
  [Expand]DevExpress.Xpf.Grid.TreeList
  [Expand]DevExpress.Xpf.Layout.Core
  [Expand]DevExpress.Xpf.LayoutControl
  [Expand]DevExpress.Xpf.Map
  [Expand]DevExpress.Xpf.NavBar
  [Expand]DevExpress.Xpf.Navigation
  [Expand]DevExpress.Xpf.PdfViewer
  [Expand]DevExpress.Xpf.PivotGrid
  [Expand]DevExpress.Xpf.PivotGrid.Printing
  [Expand]DevExpress.Xpf.Printing
  [Expand]DevExpress.Xpf.Printing.Parameters
  [Expand]DevExpress.Xpf.Printing.Parameters.Models
  [Expand]DevExpress.Xpf.Printing.PreviewControl.Bars
  [Expand]DevExpress.Xpf.Prism
  [Expand]DevExpress.Xpf.PropertyGrid
  [Expand]DevExpress.Xpf.Reports.UserDesigner
  [Expand]DevExpress.Xpf.Reports.UserDesigner.Extensions
  [Expand]DevExpress.Xpf.Reports.UserDesigner.Localization
  [Expand]DevExpress.Xpf.Reports.UserDesigner.ReportWizard
  [Expand]DevExpress.Xpf.Reports.UserDesigner.ReportWizard.Pages
  [Expand]DevExpress.Xpf.Ribbon
  [Expand]DevExpress.Xpf.RichEdit
  [Expand]DevExpress.Xpf.Scheduler
  [Expand]DevExpress.Xpf.Scheduler.Drawing
  [Expand]DevExpress.Xpf.Scheduler.Menu
  [Expand]DevExpress.Xpf.Scheduler.Reporting
  [Expand]DevExpress.Xpf.Scheduler.UI
  [Expand]DevExpress.Xpf.SpellChecker
  [Expand]DevExpress.Xpf.Spreadsheet
  [Expand]DevExpress.Xpf.Spreadsheet.Menu
  [Expand]DevExpress.Xpf.TreeMap
  [Expand]DevExpress.Xpf.Utils.Themes
  [Expand]DevExpress.Xpf.WindowsUI
  [Expand]DevExpress.Xpf.WindowsUI.Navigation
  [Expand]DevExpress.XtraRichEdit
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Document Server
[Expand]Reporting
[Expand]Report Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]CodeRush
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

PLinqInstantFeedbackDataSource Class

A component that can be used as a PLINQ data source for the GridControl in Instant Feedback UI Mode. Can be associated with any IEnumerable source.

Namespace:DevExpress.Xpf.Core.ServerMode
Assembly:DevExpress.Xpf.Core.v17.1.dll

Expanded Syntax

Expanded Remarks

Instant Feedback UI binding mode is an improvement over regular server mode. In server mode, the GridControl loads data in small portions and delegates all data-intensive operations (sorting, grouping, filtering and calculating summaries) to the data server. This is the key to the server mode's high efficiency when working with large volumes of data. The only drawback to using server mode involves data operations when the connection to the server is slow. In this instance, the bound control freezes until the data server completes operations and retrieves results. With Instant Feedback UI binding mode, data operations are performed asynchronously in a background thread, and both the bound control and the application remain highly responsive.

The GridControl can operate on any in-memory IEnumerable data sources using Parallel LINQ (PLINQ), improving performance for data-intensive operations by making full use of all the available processors/cores on the system.

Use PLinqInstantFeedbackDataSource to parallelize data processing on multiple processors in Instant Feedback UI mode. The source collection must implement IEnumerable<T>. It should be specified using the ItemsSourceDataSourceBase.ItemsSource or ListSource property.

When using PLinqInstantFeedbackDataSource, the source collection can be dynamically populated by the IListSource.GetList() method or within the GetEnumerable event handler. Data objects are loaded in a separate thread, allowing you to perform time-consuming operations (e.g. dynamically create large volumes of data) without the UI freezing. In these instances, you need to ensure thread safety yourself.

Note

The PLinqInstantFeedbackDataSource must be disposed of to terminate the processing thread and release all the resources that it owns. This can be done either by calling its Dispose method or by executing DisposeCommand. For instance, you can execute this command in an MVVM-friendly manner using EventTrigger after a window has been closed (see the example below).

To learn more, see Binding to In-Memory Data Using PLINQ.

Expanded Example

Show Me

A complete sample project is available in the DevExpress Code Examples database at http://www.devexpress.com/example=E3382.

In this demo, the DevExpress Grid Control for WPF operates in Instant Feedback data binding mode on in-memory data. All operations on data (e.g. sorting, groping, filtering, summary calculation, etc.) are performed asynchronously and parallelized on multiple processors. This allows the computing power of your hardware to be utilized to the full extent without UI freezing.

See also:

WPF Data Grid Control – PLINQ Data Support

Binding to In-Memory Data Using PLINQ

Expanded Inheritance Hierarchy

System.Object
    System.Windows.Threading.DispatcherObject
       System.Windows.DependencyObject
          System.Windows.Media.Visual
             System.Windows.UIElement
                System.Windows.FrameworkElement
                   System.Windows.Controls.Control
                      DevExpress.Xpf.Core.DXDesignTimeControl
                         DevExpress.Xpf.Core.DataSources.SimpleDataSourceBase
                            ItemsSourceDataSourceBase
                               DevExpress.Xpf.Core.DataSources.PLinqDataSourceBase
                                  PLinqInstantFeedbackDataSource

Expanded See Also

How would you rate this topic?​​​​​​​