WI01076374 - Currency Manager .NET10 Fix#20
Open
FahmiFuzi wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces extensibility improvements to the data binding infrastructure in Windows Forms, specifically targeting how
BindingContextmanages its internal collection ofBindingManagerBaseinstances. The main goal is to allow subclasses to customize behavior when a new binding manager is added, and to expose a helper for re-wiring parent-child event handlers in related currency managers. This refactoring makes it easier for downstream consumers (such as custom binding contexts) to implement advanced scenarios without modifying the base collection logic.Extensibility for binding manager addition:
OnListManagerAdded(BindingManagerBase bindingManagerBase)toBindingContext, which is invoked whenever a newBindingManagerBaseis added or refreshed. The default implementation is a no-op, allowing subclasses to override and inject custom logic at this point.EnsureListManagerinBindingContextto callOnListManagerAddedafter adding a new manager.Helpers for advanced event wiring:
RewireRelatedCurrencyManagerParent(BindingManagerBase bindingManagerBase)inBindingContext. This method allows subclasses to rewire parent event subscriptions for related currency managers, supporting scenarios previously handled by custom hashtable logic in .NET Framework. [1] [2]RewireParentChangeHandler()toRelatedCurrencyManager, which detaches and re-attaches the correct parent event handlers and primes the child manager with the parent's current state. This supports the new extensibility point inBindingContext.Public API surface:
BindingContext.OnListManagerAddedandBindingContext.RewireRelatedCurrencyManagerParentin the public API file.