Commit Graph

766 Commits

Author SHA1 Message Date
Antony Male 49f851e384 Accent any (reasonable) event signature for EventAction, not just RoutedEventHandler 2015-01-14 09:59:36 +00:00
Antony Male 68a60b0aee CommandAction unwraps TargetInvocationException, preserving stack trace 2015-01-14 08:30:08 +00:00
Antony Male 407a646fdc Dispose the container on exit 2015-01-12 13:15:10 +00:00
Antony Male 0b8c22fc08 Fix Resharper warnings, and downgrade unnecessary ones to Hint 2015-01-12 10:24:26 +00:00
Antony Male fd69a61ed5 Add workaround to error showing dialog when main window closed 2015-01-10 17:13:59 +00:00
Antony Male 9e9355ffe0 Add StyleCop support
Most of the violations were documentation changes
2015-01-10 14:22:28 +00:00
Antony Male 487c288bd3 Stop View from being instantiated 2015-01-09 11:08:00 +00:00
Antony Male 6311176648 Avoid access exception when updating CanExecuteChanged from a non-UI thread 2015-01-07 21:24:28 +00:00
Antony Male 611474c014 Catch exception when application closed 2015-01-07 20:58:12 +00:00
Antony Male c9d6fd0bb3 Make Bootstrapper.Container a property 2015-01-07 20:22:56 +00:00
Antony Male 234cc60933 Merge branch 'release/1.0.4' into develop 2015-01-07 12:50:12 +00:00
Antony Male 7081b08d5d Bump version 2015-01-07 12:47:11 +00:00
Antony Male 87ef7d3539 Update changelog 2015-01-07 12:46:43 +00:00
Antony Male 445861ee53 Standardise on whether we allow inherit on InjectAttribute 2015-01-07 12:42:48 +00:00
Antony Male 37bf6e7084 Merge branch 'feature/collection-changing' into develop 2015-01-06 14:06:56 +00:00
Antony Male 0a169e6b69 Add unit tests for BindableCollection modifications 2015-01-06 14:06:14 +00:00
Antony Male f26413f5a7 Catch corner-case with ConductorAllActive where AddRange / RemoveRange wouldn't handle added/removed items 2015-01-06 13:43:31 +00:00
Antony Male 0a541c769c Modify BindableCollection to carry out all operations on the UI thread
This means the concept of a dispatcher for it is now out of date - remove
these
2015-01-05 17:27:39 +00:00
Antony Male e73cd237dd Fix up code analysis 2015-01-05 13:21:07 +00:00
Antony Male 260bfee4c3 Remove and sort usings in samples and bootstrappers 2015-01-05 13:14:33 +00:00
Antony Male 5633bf9fb3 Merge branch 'feature/design-time' into develop
Fixes #2
2015-01-05 13:08:04 +00:00
Antony Male 2032fdad77 Add a littl more text to the design-time example 2015-01-05 13:07:50 +00:00
Antony Male a9e541c1a1 Get test coverage back up 2015-01-05 13:04:29 +00:00
Antony Male 2ce3545de2 Add design-time sample 2015-01-05 12:29:39 +00:00
Antony Male da2964c250 Ensure Execute.Dispatcher is set even at Design Time 2015-01-05 12:29:39 +00:00
Antony Male d49886c700 Command Actions don't disable if the ActionTarget is null and we're in design mode
Most of the time, the user won't bother binding s:View.ActionTarget, and it's
nice to show a more "normal" button in this case, rather than a disabled
one.
2015-01-05 12:29:11 +00:00
Antony Male e0ee7f21ff Support Design-mode in View
We don't try and resolve the actual View (and its ViewModel), but instead
display a little message message
2015-01-05 12:29:11 +00:00
Antony Male 3f2d298ba2 Add more descriptive exceptions to Action error cases 2015-01-05 12:28:26 +00:00
Antony Male d62ea7a22d Allow setting of Execute.InDesignMode, for obscure unit testing ONLY 2015-01-05 12:22:00 +00:00
Antony Male b538f11453 Fix up previous commit 2015-01-05 12:21:46 +00:00
Antony Male f36de34bb2 Execute.Dispatcher can never be null, and dispatches synchronously by default
The previous behaviour was to raise an exception unless Execute.Dispatcher
had been explicitly defined. This was to detect cases where the user hadn't
set up Execute correctly, and treat them as errors rather than simply going
ahead with some possibly-unexpected behaviour.

However, since BootstrapperBase sets Execute.Dispatcher automatically, it's
highly unlikely that itwould ever not be set when it needed to be. Exceptions
are design mode and unit tests, both of which want (or can cope with) a
synchronous dispatcher.

Hence the behaviour change. Execute.Dispatcher is a synchronous dispatcher
by default, but is overridden to one that uses Application.Current.Dispatcher
by the bootstrapper if we're in a real application.
2015-01-04 21:30:34 +00:00
Antony Male 27b80717ea Make View name resolution a bit smarter 2015-01-04 17:05:16 +00:00
Antony Male 9f9e282fdd Add bootstrapper which does not require an IoC container 2015-01-04 13:23:29 +00:00
Antony Male 9ee23f1469 Remove Execute.TestExecuteSynchronously, in favour of a synchronous IDispatcher implementation 2015-01-04 13:10:37 +00:00
Antony Male 9765f6c3fe Fix up BindableCollection collection dispatcher, and add tests 2015-01-04 12:37:33 +00:00
Antony Male 2ed54c4acd Refactor BootstrapperBase slightly, to call OnStartup at a better point in time 2015-01-04 12:28:02 +00:00
Antony Male 6d72032f8c Allow IModelValidator to return IEnumerable<string> rather than string[]
Closes #1
2014-12-26 22:55:41 +00:00
Antony Male 875586f32a Merge branch 'release/1.0.3' into develop 2014-12-11 16:58:32 +00:00
Antony Male c0add88302 Bump version 2014-12-11 16:58:22 +00:00
Antony Male 9bc2950fee Update changelog 2014-12-11 16:57:44 +00:00
Antony Male 4a2c345bec Have different default PropertyChanged and CollectionChanged despatchers
This is because PropertyChanged events can be async - WPF handles the
marshalling. However if CollectionChanged events are async, then the
thing listening to the event can still be iterating the collection while
the user's editing it, leading to irritating little exceptions
2014-12-05 10:59:22 +00:00
Antony Male 94d4a31b85 Be draconian about using readonly where appropriate 2014-12-04 17:06:12 +00:00
Antony Male 91eab0958f Stop marking exceptions as Serializable - it's not needed 2014-12-04 13:34:20 +00:00
Antony Male a48eda896f Remove LambdaComparer and LambdaEqualityComparer - they have no business in an MVVM framework 2014-12-04 13:29:08 +00:00
Antony Male 46672cb0b9 Merge branch 'release/1.0.2' into develop 2014-12-02 17:41:57 +00:00
Antony Male 9702fcf70b Bump version 2014-12-02 17:39:46 +00:00
Antony Male 08636798db Update changelog 2014-12-02 17:38:39 +00:00
Antony Male 509d428dc8 Move back to lots of separate arguments for ShowMessageBox - consistent with MessageBox.Show 2014-12-02 16:16:32 +00:00
Antony Male f47db1cbec Change some Bootstrapper methods to public, to avoid explicit interface implementation 2014-12-02 15:20:16 +00:00
Antony Male 743961ec68 ViewManager now accepts an IViewManagerConfig, which makes the IoC container setup neater 2014-12-02 12:52:58 +00:00