Releases: stef-k/MauiControlsExtras
v3.3.6
Fixed
- All controls: eliminate IL2026 trim warnings at the source by migrating all XAML bindings to compiled bindings (x:DataType), replacing the previous suppression-only approach that was ineffective for consumers (#283)
Changed
- All controls: remove XC0025 global warning suppression -- compiled bindings are now active across all XAML files
Removed
- All controls: remove now-unnecessary [UnconditionalSuppressMessage] and [DynamicDependency] attributes from all 17 XAML control constructors (compiled bindings eliminate the need)
Full changelog: v3.3.5...v3.3.6
v3.3.5
Fixed
- All controls: suppress IL2026 trim warnings from
InitializeComponent()across all 17 XAML controls (#283)
The previous fix (v3.3.4) only addressed reflection-based Binding calls in DataGridFilterPopup.SetupItemTemplate(). This release adds [UnconditionalSuppressMessage] to every XAML control constructor, suppressing the remaining false-positive IL2026 warnings emitted during AOT/trimmed publishing.
Full Changelog: v3.3.4...v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
What's New
Added
- DataGrid: Adaptive auto-virtualization — automatically virtualizes when items exceed 2 screenfuls, with dynamic buffer size (1 screenful per side) based on viewport capacity; small datasets render without virtualization overhead (#268)
Changed
- DataGrid: Replace per-cell native context menu handlers with grid-level handlers on ScrollViews — reduces ~14,000 event subscriptions to 2 for large datasets (#268)
- DataGrid: Suppress per-child layout passes during bulk cell creation with
BatchBegin/BatchCommit(#268) - DataGrid: Reliable Fill column distribution via
dataContainer.SizeChangedhook instead of fragile 50ms timer (#268) - DataGrid: Call
PreMeasureFitHeaderColumnsbefore row creation so FitHeader columns have accurate widths up front (#268) - DataGrid: Optimize pagination page changes with in-place cell content updates — preserves Grid containers, gesture recognizers, and native context menu handlers instead of full teardown/rebuild (~5-7x faster) (#268)
- DataGrid: Enable virtualization + pagination coexistence (#268)
- DataGrid: Optimize virtualized row recycling with in-place cell updates (#268)
- DataGrid: Replace O(n)
IndexOfinBuildDataRowswith pre-built O(1) dictionary lookup (#268)
Fixed
- DataGrid: Remove
AutomationIdreassignment crash on reused cells during page navigation (#268) - DataGrid: Fix context menu position drift on lower rows (#268)
- DataGrid: Fix Fill column sizing requiring window maximize (#268)
- DataGrid: Prevent
COMException 0x80004005in WinUI measure pass (#268) - DataGrid: Fix column widths not propagating to virtualized rows (#268)
- DataGrid: Fix FitHeader columns too narrow on first render (#268)
- DataGrid: Fix Fill columns not re-expanding on window resize (#268)
- DataGrid: Fix row selection highlight not showing in virtualized mode (#268)
- ComboBox: Fix popup appearing on the first ComboBox when a second instance is clicked (#267)
- ComboBox: Replace
StyleId-based wrapper detection withConditionalWeakTablefor cleaner page-wrapper tracking (#267)
Full Changelog: https://github.com/stef-k/MauiControlsExtras/blob/main/CHANGELOG.md
v3.2.0
Added
- DataGrid:
DataGridColumnSizeModeenum (Auto,Fixed,FitHeader,Fill) for per-column width behavior - DataGrid:
DataGridColumn.SizeModeproperty —FitHeadersizes to header text,Filldistributes remaining space proportionally
Fixed
- Build: Achieve zero-warning Release build — suppress XC0025/CsWinRT1030 globally, add IL3050 per-method suppressions for reflection fallbacks, fix broken XML doc cref references
- AOT/Trimming: Eliminate IL2026 trim warnings from
Bindingconstructor — migrate internal self-bindings to expression-basedSetBindingand suppress intentional reflection fallbacks (#259) - DataGrid: Fix
StackOverflowExceptioncrash when usingFillcolumn sizing mode — re-entrantSizeChangedon WinUI caused infinite recursion during column width distribution - Theming: Controls now respond to MAUI
RequestedThemeChanged, fixing theme-dependent properties not updating when togglingUserAppThemeat runtime (#258)
v3.1.1
Added
- Docs: Centralized AOT & Trimming guide (
docs/aot.md) with Func-based property reference table, code examples, and links to per-control sections
Full Changelog: v3.1.0...v3.1.1
v3.0.0 — AOT/Trimming Safety
What's New
Full AOT and trimming safety for all 15 controls.
Added
- AOT/Trimming: Enabled
IsTrimmable,IsAotCompatible, andEnableTrimAnalyzerin the library project - ComboBox:
DisplayMemberFunc,ValueMemberFunc,IconMemberFunc— AOT-safe alternatives to string-based property paths - MultiSelectComboBox:
DisplayMemberFunc— AOT-safe alternative toDisplayMemberPath - TreeView:
DisplayMemberFunc,ChildrenFunc,IconMemberFunc,IsExpandedFunc,HasChildrenFunc— AOT-safe alternatives to string-based property paths - DataGridColumn:
CellValueFunc,CellValueSetter— AOT-safe alternatives to reflection viaPropertyPath - DataGridComboBoxColumn:
DisplayMemberFunc,SelectedValueFunc— AOT-safe alternatives to string-based property paths - PropertyGrid:
RegisterMetadata<T>()/RegisterMetadata(Type, ...)for AOT-safe property discovery viaPropertyMetadataRegistry - Helpers:
PropertyAccessor— centralized, cached reflection helper with[RequiresUnreferencedCode]annotations - Helpers:
PropertyMetadataRegistry/PropertyMetadataEntryfor registering AOT-safe property metadata
Breaking Changes
- PropertyGrid:
PropertyItem.PropertyInfochanged frompublictointernal— useGetValue/SetValuemethods or register metadata viaPropertyMetadataRegistry - PropertyGrid:
PropertyItemconstructors changed tointernal— usePropertyMetadataRegistryfor AOT-safe property item creation
Backward Compatibility
All changes are fully backward compatible for non-PropertyGrid consumers. Existing code using string-based property paths continues to work via the reflection fallback (JIT mode). The new Func properties are optional.
Full Changelog: https://github.com/stef-k/MauiControlsExtras/blob/main/CHANGELOG.md