Remove inheritence in favour of composition
Pre-release
Pre-release
·
7 commits
to feature/composition
since this release
Breaking Changes
- Bindings now use System.ComponentModel INotifyPropertyChanged and INotifyCollectionChanged
- Removed ObservableList. Use ObservableCollection instead
- Scene items no longer inherit from ObservableNode
- Scene items still have to implement IObservableObject
- Scene items must create an instance of BindingContext and register bindings against the context
- BindingContext is now the context for validations. Use this for HasError and for subscribing to the ControlValidationChanged event
- New base classes ControlViewModel and NodeViewModel can be used isntead of implementing IObservableObject
- Bindings require a node reference instead of a path
New Features
- Code generators such as PropertyChanged.SourceGenerator can be used to implement INotifyPropertyChanged
- List bindings now support Move, Replace, and Insert events
- Added support for custom control bindings. Custom controls must implement IObservableObject
- Custom controls can be bound by targeting a property that raises the OnPropertyChanged event
- Nodes can be bound using extensions methods for BindProperty etc.