Skip to content

Releases: nkristek/Smaragd

5.2.3

03 Mar 20:12
Compare
Choose a tag to compare

This release has updated dependencies.

5.2.2

11 Nov 19:36
Compare
Choose a tag to compare

This release adds package signing (SNK).

5.2.1

10 Nov 10:21
Compare
Choose a tag to compare

This release improves XML documentation by expanding the inheritdoc tag.

5.2

02 Oct 23:20
Compare
Choose a tag to compare
5.2

This release enables C#8 nullable reference types and improves the build process.

5.1

21 Aug 19:46
Compare
Choose a tag to compare
5.1
  • 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

5.0

15 Aug 20:26
Compare
Choose a tag to compare
5.0

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:

Bindable

  • 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

ValidatingViewModel

  • 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