Due to a flux in the matrix, Bindings with a TargetNullValue assigned
were always returning that value. It had the advantage of being right
sometimes, but the inconvenient for being wrong, most of the times.
By properly aligning the bits of the register with the sun at beer time,
we can avoid that side effect, and actually returns a value when the
binding is succesful, and the TargetNullValue whem the Binding returns
null.
- fixes#3467
* [C/XamlC] BindingMode.OneTime
Bindings with mode == OneTime:
- are only applied when the BindingContext changes
- do not subscribe to INPC
if the Binding is compiled and the mode explicitely set in the
`{Binding}` Markup extension, the setters and handlers aren't even
created.
- fixes#1686
* update docs
* [C] do not reapply a Binding with a Source when the Context changes
* apply the same to typedBindings
* [C] Use a flag to Apply()
* [C] Remove 2 other unnecessary Binding refreshs
* Remove InternalsVisibleTo from Core to XF.Platforms.*
* Changes per Jason's code review
* Move LockableObservableListWrapper to internals namespace
* Changes per Stephane's code review
* update docs
* Touch code to get CI to run tests
* Rebase; Update documentation
* Unit test proving a memory leak with Binding
What we were seeing in our app was that Binding objects stay around when
bound to long-lived ViewModels, even when the View is long gone
* BindingExpression - INotifyPropertyChanged should use WeakReference
I had to make a WeakPropertyChangedProxy class for this, I could not
think of a way to get around creating a new object for this