DataFilter.Filtering.ExcelLike
1.1.4
dotnet add package DataFilter.Filtering.ExcelLike --version 1.1.4
NuGet\Install-Package DataFilter.Filtering.ExcelLike -Version 1.1.4
<PackageReference Include="DataFilter.Filtering.ExcelLike" Version="1.1.4" />
<PackageVersion Include="DataFilter.Filtering.ExcelLike" Version="1.1.4" />
<PackageReference Include="DataFilter.Filtering.ExcelLike" />
paket add DataFilter.Filtering.ExcelLike --version 1.1.4
#r "nuget: DataFilter.Filtering.ExcelLike, 1.1.4"
#:package DataFilter.Filtering.ExcelLike@1.1.4
#addin nuget:?package=DataFilter.Filtering.ExcelLike&version=1.1.4
#tool nuget:?package=DataFilter.Filtering.ExcelLike&version=1.1.4
DataFilter.Filtering.ExcelLike
High-performance engine for advanced, Excel-like filtering logic.
Visual customization: UI packages only — CUSTOMIZATION.md.
NuGet integration
Install the package
dotnet add package DataFilter.Filtering.ExcelLike
Target frameworks
net8.0, net9.0
Dependencies
DataFilter.Core(transitive when referenced from UI packages)
Typically consumed indirectly via DataFilter.Wpf, DataFilter.Blazor, or DataFilter.PlatformShared. Add this package directly when building a custom UI on top of Core.
Popup colors and styles are configured in UI packages via FilterTheme — see CUSTOMIZATION.md.
Quick start
using DataFilter.Core.Abstractions;
using DataFilter.Filtering.ExcelLike.Models;
using DataFilter.Filtering.ExcelLike.Services;
var state = new ExcelFilterState
{
SelectedValues = new HashSet<object?> { "Alice", "Bob" },
SelectAll = false
};
var descriptor = new ExcelFilterDescriptor("Name", state);
context.AddOrUpdateDescriptor(descriptor);
// After replacing the data source, reconcile selections against new distincts
ExcelFilterSelectionReconciler.Reconcile(state, distinctValues, dropSelectionsNotInDistinct: true);
Logic Overview
- Hierarchical Distinct Values: Grouping dates by Year/Month/Day.
- Custom Filters: Combining primitive selection with operator-based rules.
- Accumulation Modes:
Union: Add items from search to results.Intersection: Refine current results with search.
Key Services
ExcelFilterEngine
The central hub for data analysis and filter creation.
ExcelFilterDescriptor / ExcelFilterState
Descriptorsbuilds filter rules from the column state. A custom filter (CustomOperator) adds one rule;AdditionalCustomCriteriaadds further AND-combined rules on the same property (same semantics as the popup’s stacked custom filters).SelectedValuesholds the distinct values used for list/In selection; the UI reconciles these when the backing data is replaced.OrSearchPatternspersists Union (OR) of full search results without materializing distinct lists (e.g.,StartsWith("Alice") OR StartsWith("Henry")).OrSelectedValuespersists Union (OR) when the user selects only a subset of a searched group (e.g.,StartsWith("Alice") OR In(["Henry 124","Henry 146"])).
ExcelFilterSelectionReconciler
Keeps ExcelFilterState.SelectedValues aligned with current distinct value instances (e.g. after ItemSource / LocalDataSource replacement). Uses reference equality where possible, then value equality. The dropSelectionsNotInDistinct flag distinguishes strict reconciliation (grid refresh) from popup InitializeAsync (preserve off-list selections during search narrowing).
WildcardMatcher
Performance-optimized utility for text pattern matching (supporting * and ?). Core evaluation also supports wildcards via FilterEvaluator / FilterExpressionBuilder.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- CommunityToolkit.Mvvm (>= 8.4.2)
- DataFilter.Core (>= 1.1.4)
-
net9.0
- CommunityToolkit.Mvvm (>= 8.4.2)
- DataFilter.Core (>= 1.1.4)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on DataFilter.Filtering.ExcelLike:
| Package | Downloads |
|---|---|
|
DataFilter.PlatformShared
Package Description |
|
|
DataFilter.Wpf
Package Description |
|
|
DataFilter.Blazor
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.