🚀 This release has updated dependencies.
🚀 This release adds package signing (SNK).
📚 This release improves XML documentation by expanding the inheritdoc tag.
🚀 This release enables C#8 nullable reference types and improves the build process.
- ValidatingViewModel was renamed to ValidatingBindable and now inherits from Bindable instead of ViewModel
- ViewModel inherits from ValidatingBindable instead of Bindable
- Dialog inherits from ViewModel instead of ValidatingViewModel
- 🚚 The IsValid property was moved to ViewModel
- The type of errors of a property was changed to IEnumerable to enable non string errors
🚀 This release introduces a refactoring of many classes and interfaces included in this library. This reduces complexity, enables better testability and provides better performance.
📚 There are also new features, like the added support for WeakReference<T> storage fields, updated XML documentation and more unittests.
A more detailed summary of the changes:
- ✂ remove IRaisePropertyChanging and IRaisePropertyChanged interfaces and change methods to protected visibility
- 📇 rename RaisePropertyChanging method to NotifyPropertyChanging
- 📇 rename RaisePropertyChanged method to NotifyPropertyChanged
- ✂ remove virtual keyword from PropertyChanging and PropertyChanged eventhandlers
- 👍 allow propertyName to be null in NotifyPropertyChanging, NotifyPropertyChanged and SetProperty methods
- ➕ add overload for SetProperty method for setting WeakReference<T> storage fields
- ➕ add overloads for SetProperty method without the oldValue out parameter
- ➕ add comparer parameter to SetProperty methods
ComputedBindable and ViewModel
- ✂ remove ComputedBindable class and move logic to ViewModel class
- ✂ remove Commands dictionary from ViewModel class
- ➕ add virtual keyword to IsDirty, Parent and IsUpdating properties
- ✂ remove IRaiseErrorsChanged interface and change method to protected visibility
- 👀 rename RaiseErrorsChanged method to NotifyErrorsChanged
- ✂ remove virtual keyword from ErrorsChanged eventhandler
- set multiple validation errors per property by using SetErrors()
- ➕ add overload to GetErrors method with generic return type IEnumerable<string>
- ✂ remove support for IDataErrorInfo interface
- 🔄 change IValidation interface to generic in and out parameters
- ✂ remove Validation<T> base class
- ➕ add FuncValidation class
ViewModelCommand and AsyncViewModelCommand
- ✂ remove IRaiseCanExecuteChanged interface and change method to protected visibility
- 📇 rename RaiseCanExecuteChanged method to NotifyCanExecuteChanged
- ✂ remove virtual keyword from CanExecuteChanged eventhandler
- ✂ remove CanExecuteSourceAttribute class, use OnParentPropertyChanged instead
- implement and automatically attach OnParentPropertyChanging and OnParentPropertyChanged methods to Parent
- properly raise events on PropertyChanging and PropertyChanged eventhandlers when IsWorking is about to change or has changed
- check if the returned task from the ExecuteAsync method is null before awaiting it
v4.3April 25, 2019
v4.2.3April 24, 2019
v4.2.2April 16, 2019
v4.2.1April 03, 2019