Skip to content

Releases: mysteryx93/HanumanInstitute.MvvmDialogs

v1.4 IViewLoaded, IViewClosing, IViewClosed

30 Aug 00:18
Compare
Choose a tag to compare

Version 1.4 is ready!

Handling Loading, Closing and Closed events presents a few annoyances.

Loading is a common business concern. Why would you have to write code in your View for it?

Closing is generally used to display a confirmation before exit. Calling async code from the Closing event would require complex code, both in the ViewModel and the View.

Closed cannot even call a command via an XAML behavior!

As a simple solution, you can implement IViewLoaded, IViewClosing and/or IViewClosed from your ViewModel with no code required in your View.

What's new in v1.4:

  • IViewLoaded, IViewClosing and IViewClosed interfaces have been added. See documentation.
  • Owner parameters are now optional, it's up to the implementation as to whether or not it is supported
  • IWindow has been renamed to IView
  • Fixed a bug with Fluent TaskMessageBox

v1.3.1 Polishing

01 Jul 08:36
Compare
Choose a tag to compare

Version 1.3.1 is ready!

What's new:

  • File dialog filters can now take extensions with or without the dot
  • FluentAvalonia TaskDialog now supports default buttons
  • Open/save file framework dialog settings are now more consistent in Avalonia and WPF

v1.3 FluentAvalonia Support

16 Jun 21:33
Compare
Choose a tag to compare

Version 1.3 is ready! It has major changes to the internal design with little impact on you.

  • Calls will only be dispatched if not already on UI thread
  • Redesigned FrameworkDialogFactory to be simpler and more modular
  • MessageBox for Avalonia is now split into a separate assembly HanumanInstitute.MvvmDialogs.Avalonia.MessageBox, since Avalonia doesn't have built-in support for message boxes
  • MvvmDialogs.Avalonia, removed reference to MessageBox.Avalonia
  • Added preliminary support for FluentAvalonia HanumanInstitute.MvvmDialogs.Avalonia.Fluent

TODO:

  • Support icons with Fluent MessageBox TaskDialogs
  • Support more complex usage of Fluent dialogs

v1.2.3 Thread-Safety

08 Jun 02:56
Compare
Choose a tag to compare

Version 1.2.3 is ready! DialogManager is now thread-safe. This means you can now call IDialogService from background services without having to worry about UI thread access!

  • DialogManager is now thread-safe, dispatching UI calls to the UI thread
  • Added optional dispatcher parameter to DialogManager

v1.2.1 Unit Test Friendly

29 May 20:43
Compare
Choose a tag to compare

Version 1.2.1 is ready!

Made the library more friendly for unit tests. One area that caused trouble is the creation of the
dialog view model new MyDialogViewModel(). If it has dependencies, you might use Locator.MyDialogViewModel,
but then that's not unit-test friendly.

As a solution, you will now create the view model using
IDialogService.CreateViewModel<T>.
It will call a ViewModelFactory function set in the DialogService constructor.

  • Added viewModelFactory parameter to DialogService constructor
  • Moved viewLocator constructor parameter from DialogService to DialogManager
  • Updated all demos to use correct constructor parameters
  • Updated all demos to use IDialogService.CreateViewModel<T>
  • Added unit test sample project: Demo.ModalDialog.Tests

v1.2 Revamped logging with ILogger

28 May 20:51
Compare
Choose a tag to compare

Version 1.2 is ready!

  • Logging is now done using standard ILogger<DialogService> interface. See doc
  • Revamped the whole logging mechanisms
  • All demos now output logs to the Debug window
  • Added IWindow.RefObj, which can be implemented like this for custom dialogs: public object RefObj => this;
  • IDialogManager.ShowFrameworkDialogAsync now takes an extra optional parameter resultToString to convert the result to string for logging. If null, it uses object.ToString().
  • Bug fix: WPF.DialogService.ShowDialog (sync method) was not working

v1.1 No More XAML Registrations

27 May 17:39
Compare
Choose a tag to compare

Version 1.1 is ready!

BREAKING CHANGES

  • XAML registration is no longer required and must be removed

If your convention is different than simply replacing 'ViewModel' with 'View':

  • You must add a ViewLocator to your project (see doc)
  • You must pass this ViewLocator to the DialogService constructor

Adopting Avalonia's ViewLocator design greatly simplifies the code and avoids duplicating the design.

  • Internally, the following classes have been removed:
    DialogTypeLocatorBase, DialogTypeLocatorCache, IDialogFactory, NamingConventionDialogTypeLocator, ReflectionDialogFactoryBase, ViewRegistration, DialogServiceViews, ReflectionDialogFactory
  • Renamed IDialogTypeLocator to IViewLocator
  • Removed namespace HanumanInstitute.MvvmDialogs.DialogTypeLocators

MvvmDialogs.Avalonia is no longer signed because dependency ReactiveUI is not signed.

Initial Release! v1.0.0

10 May 02:17
Compare
Choose a tag to compare

I created this library derived from FantasticFiasco's/mvvm-dialogs to use MVVM Dialogs with Avalonia. Here is the first official release!

See full documentation in the README.md file