This code is definitely pre-release at present - there are a few days of testing ahead of me updating and testing all the samples.
This code also includes a few potential breaking changes - so it is possible that it may eventually be released as 3.1 rather than 3.0. This decision and timeline also depends on Xamarin's release schedule for PCL support - which is outside of Mvx's control. There is still a chance that this support may require us to switch to a different profile - still waiting to find out any information at all on this.
The main changes from 3.0.12 are:
- added UnsetValue and DoNothing binding constants to allow richer ValueConverter implementation (note that these constants are not fully supported across all Windows platforms)
- changed binding implementation so that many more binders will now block feedback loops
- changed binding implementation so that many more binders will now attempt value coercion when setting values on a target
- optimised text binding in Droid and Touch - 'label' controls will be set directly using non-reflection and using one-way binding as default
- optimisations for one-way binding - event subscription is not removed
- added an IMvxInteraction helper interface to assist with 'dialog' user interactions
- cleared up 'mixed spellings' of Initialisation/Initialization - the US spelling 'Initialization' is now used everywhere (this may break some overrides in people's Setup code)
- event `Raise` extension methods now moved into shared code - into CrossCore
- fragment inflation no longer causes an error message in trace
- fixed two missing event hook calls in Android dialog code
- Binding DataContext's now have a DataContextChanged event
- By default, views can now be named with postfix 'View' or 'ViewController' on iOS, 'View' or 'Activity' on Android, 'View' or 'Page' on WindowsPhone/Store, 'View' or 'Control' on WPF
- Small optimisation in internationalisation converter
- Improved access to MasterNavigationController in Touch presenters - as requested via @deapsquatter's blog
- Improved override capabilities for AndroidLifetime monitoring object
- Improved error message for users using viewmodels from mutliple assemblies
- Weak referencing is now used in Rio field binding
Several of these are potential breaking changes - so please be careful to test your apps if you do choose to update.
This code is definitely pre-release at present - there are a few days of testing ahead of me updating and testing all the samples....
Stuart, I am not seeing the IMvxInteraction helper. I would like to take a look and see if I can piggyback mine on yours (https://github.com/brianchance/MvvmCross-UserInteraction)
ReplyDeleteExcellent! :)
DeleteThe IMvxInteraction stuff is currently on the BindingChanges branch in https://github.com/MvvmCross/MvvmCross/blob/BindingChanges/Cirrious/Cirrious.MvvmCross/ViewModels/IMvxInteraction.cs (and a couple of other files there). Its use is a bit more general than the use of your plugin - so I think I would **not** merge the two things together
- your's is a quick/instant IDialogService type solution for people to use (so it's what most people would use)
- mine is closer to Prism's interaction pattern - which is neat, but requires time/thought/coding to get working
I do think a third pattern might evolve soon... async/await should make this dialog stuff easy really...