All notable changes to this project will be documented in this file.
- TreeListBoxDemo: Restructured to support multiple examples with a launcher window, added MultipleRootsExample demonstrating the fix for issue #282 #282
- DataGrid: Added FilteringExample demonstrating how to filter DataGrid items using CollectionViewSource with search text, enum, and boolean filters #392
- DataGrid: Added DynamicBackgroundExample with dismissible explanation panel demonstrating BackgroundProperty for data-driven cell backgrounds #TBD
- Created GitHub issue templates (bug report and feature request) and pull request template following best practices #448 #452
- Observable: Added comprehensive unit tests for VerifyProperty method including tests for inherited properties #462
- PropertyGridDemos: Added ValidationErrorStyleExample demonstrating how to use ValidationErrorStyle with a custom ControlFactory #455
- TreeListBox: Fixed multiple root items expansion issue where children were incorrectly displayed under the last root item instead of their respective parent #282
- DataGrid: Fixed thick borders when background is set by using z-index ordering - grid lines now render on top of cells instead of each cell drawing borders #TBD
- DataGrid: Fixed BackgroundProperty binding not working - now correctly sets BackgroundBindingSource for property-based backgrounds #TBD
- DataGrid: Fixed background color regression where TextBlock cells showed white instead of configured colors - now properly wraps in Border #TBD
- PropertyGrid: Fixed style application issue where implicit styles from Style.Resources were not applied to controls when bound to objects implementing IDataErrorInfo or INotifyDataErrorInfo #455
- Custom GitHub Copilot agent for updating package dependencies and target frameworks #422
- GitHub Actions workflows: Support for building with .NET 10 SDK in all workflows #424
- Documentation: Added AGENTS.md with comprehensive coding agent guidelines including code style, test coverage requirements, how to write tests, how to implement demos, and documentation update requirements #420
- Documentation: Added CLAUDE.md as a quick reference guide for Claude AI that refers to AGENTS.md #420
- Support for .NET 10 - Windows #416
- Support for .NET 8 - Windows #367
- ProgressAttribute #391
- DataGrid/PropertyGrid: ILocalizableOperator and ICustomLocalizableOperator interfaces #398
- DataDialog supporting INotifyDataErrorInfo #405
- ItemsBag: Added comprehensive unit tests for value type properties (int, double, enum) #355
- ItemsBag: Added comprehensive unit tests for already-nullable value types to verify PropertyType behavior #355
- GitHub Actions: Configure CodeQL workflow to use security-extended query suite for more comprehensive security scanning #437
- PropertyGridDemo: Implemented INotifyPropertyChanged in Example base class and all Example classes, removed Fody dependency #TBD
- Tests: Updated NUnit tests to use constraint syntax (Assert.That with Is.EqualTo) instead of classic assertions (Assert.AreEqual) #417
- Updated DotNetProjects.Extended.Wpf.Toolkit package from version 5.0.103 to 5.0.129
- Tests: Upgraded NUnit from 3.12.0 to 4.4.0 for latest features and improvements
- Tests: Upgraded Microsoft.NET.Test.SDK from 16.0.1 to 18.0.1 for improved test execution
- Tests: Upgraded NUnit3TestAdapter from 3.15.1 to 6.0.1 for compatibility with NUnit 4
- ItemsBag: Improved documentation explaining how it works with type descriptors and property descriptors #355
- AboutDialog: Removed from PropertyTools.Wpf library and moved to DialogDemos example #431
- PropertyGridDemo: Removed Fody and PropertyChanged.Fody package dependencies #TBD
- Observable: VerifyProperty now correctly accepts inherited properties in addition to declared properties #462
- DataGrid: Handle SerializationException gracefully in clipboard operations when non-serializable objects are present #460
- Security: FilePicker.Explore() - Validate and escape file paths to prevent command injection attacks #459
- Security: FilePicker.Open() - Validate file paths before opening to prevent path traversal attacks #459
- Security: DirectoryPicker.Explore() - Validate and escape directory paths to prevent command injection attacks #459
- Security: LinkBlock - Restrict URI schemes to safe protocols (http, https, mailto, ftp) to prevent malicious URI execution #459
- DataGrid: Paste operation with active sorting now correctly updates items in source collection instead of incorrect rows #444
- DataGrid: Clipboard commands remain enabled when grid is empty (no rows) #450
- DataGrid: Context menu items should be disabled when operations are not applicable #446
- FilePicker: Fix Open button not opening files with associated applications on .NET Core/.NET 5+ #435
- DirectoryPicker: Use full system path for explorer.exe to prevent PATH-based security vulnerabilities #433
- FilePicker: Use full system path for explorer.exe to prevent PATH-based security vulnerabilities #433
- AboutDialog: Use full system path for msinfo32.exe to prevent PATH-based security vulnerabilities #429
- GitHub Actions: Fix CodeQL workflow failure by upgrading to CodeQL action v3 #426
- DataGrid: Update after pasting values #269
- DataGrid: Deleting last item in a sorted data grid causes an exception #321
- TreeListBox: Fix items being added under collapsed nodes #264
- Update namespace for ButtonChrome and SystemDropShadowChrome controls #316
- DataGrid: Support for untyped lists of lists #343
- PropertyGrid: Fix description icon alignment for HeaderPlacement set to Above #347
- RadioButtonList: Enhance RadioButton Control with Individual Button Enable/Disable Capability #350
- ItemsBag: Ensure that the ItemsBag Property Descriptor does not suppress the property change notifications #354
- ItemsBag: Propagation of IsReadOnly property to the ItemsBag Property Descriptor #369
- TreeListBox: Catching the ArgumentException by message title, fails in non english regions #38 #142
- Support for .NET Core 3.0 #221
- DataGrid: Support for items source in columns #232
- PropertyGrid: Make PropertyGrid extendable to support warning messages #248
- PropertyGrid: Added property to set duration of tooltip #259
- DataGrid: Returning incorrect 'SelectedItems' when sorted #217
- DataGrid: Fix auto width issue #224
- PropertyGrid: Support for INotifyDataErrorInfo #226
- DataGrid: Align DataGrid scrollbar code #238
- DataGrid: Exception when sorting empty collection #240
- LinkBlock: Fix exception #261
- DataGrid: Commands moved to DataGridCommands
- DataGrid: DeleteOverride renamed to ClearOverride
- DataGrid: The EasyInsert property is replaced by IsEasyInsertByKeyboardEnabled and IsEasyInsertByMouseEnabled #179
- DataGrid: Changed the IDataGridOperator interface
- PropertyTools NuGet package targets NET45 and .NET Standard 2.0
- DataGrid: AutoSizeColumns property
- Observable methods based on expressions
- ExpressionUtilities class
- DataGrid: Auto column width
- DataGrid: Scrolling row headers with horizontal scroll bar
- DataGrid: Set correct row when sorting rows and adding a new row
- DataGrid: Handle exception when pressing Delete #163
- DataGrid: Clear enum values when pressing Delete #165
- DataGrid: Null ref checks on CollectionView
- DataGrid: Item type when binding to lists of object
- DataGrid: Paste values outside grid boundaries #171
- DataGrid: Auto-insert for IList<IList<>> sources
- DataGrid: Hide selection when disabled #178
- DataGrid: Exception in AddDisplayControl #181
- DataGrid: Support for custom type descriptors #200
- DataGrid: Auto width not working with horizontal stretch #223
- PropertyGrid: Support BrowsableAttribute on enum items when shown as ComboBox or ListBox #133
- PropertyGrid: Hidden error info when HeaderPlacement = Above #212
- TreeListBox: Applied workaround for "Height must be non-negative" exception #38 #142
- EditableAttribute
- DataGrid: Sorting commands #124
- DataGrid: IsMoveAfterEnterEnabled property #158
- PropertyGrid: Support nullable enums #129
- PropertyGrid: Option to disable auto fill #143
- PropertyGrid: Update SelectedObjects to be bindable when collection changes #175
- DataGrid: Register converters in cell definition factory #160
- DataGrid: CanClear property
- DataGrid: IDataGridControlFactory interface
- DataGrid: TemplateColumnDefinition binding path
- Target .NET 4.5 #117
- PropertyGrid: Renamed PropertyControlFactory to PropertyGridControlFactory
- PropertyGrid: Renamed PropertyItemFactory to PropertyGridOperator
- DataGrid: Support for different types in the same column #118
- DataGrid: Support for cell backgrounds #119
- DataGrid: CellDefinitionFactory property #120
- DataGrid: Support for IsEnabled on cell level
1.0.0 - 2016-09-08
- First semantic version release