In case you missed it: Lot's of Bag 'o Tricks fun recently
I've also added the BOT to NuGet.
Here's a lazy man's update--just a copy-paste from the changelog.
Take a look.
Bag of Tricks Change Log
V4.1.0 - 2011-07-20
Lot's of fun now stuff, but no breaking changes! Feels good.- Added
GetStringComparer
extension that takes a CultureInfo - Added
SelectAdjacentPairs
to extensions - Added
ResourceHelpers
extensions to SL assembly - Added
TryGetTypedValue<>
extension - Fixed a gnarly bug in SL version of
ColorHelper.HsbToRgb
- Added
NextFloat
extension method forRandom
- Added
ModalControl
Closes #23 - Adjacent pairs methods now take
IEnumerable<T>
instead of requiringIList<T>
v4.0.0 - 2011-07-08
- BREAKING - Removed
DispatcherExtensions
. The implementation was trivial and it brought in all of Reactive Extensions as a dependency, which isn't worth it. - Fix for Issue #3 from Larry.
v3.0.0 - 2011-07-08
Because this rev contains non-compatible breaking changes, I'm bumping the version number. If this is annoying, let me know and I'll be more careful.- Added command support to
DoubleClickBehavior
- thanks, Larry - Added demo for
DoubleClickBehavior
- Added
FilteredObservableEnumerable
- BREAKING - Using Reactive Extensions for async features
v2.0.0 - 2011-07-05
In theNuGet
world, BOT is not three projects: Core, Common, BOT. This allows one to minimize dependencies on external assemblies (mostly Prism) when not needed.- BREAKING - Added a
Core
Silverlight assembly to match the same in WPF - BREAKING - Moved
DemoCollection
back to WPF demo app. This eliminates the dependency on Prism in Core and Common
v1.1.0 - 2011-06-22
Moving to Semantic Versioning. Non-breaking features are added, so we bump minor version number.Library changes
- Added
Insert
method toWeakEnumerable<T>
, which puts new items at the beginning of the enumeration. Which makes insertion O(1) instead of O(n) - Added
SortedObservableEnumerable<T>
: because sometimes you'd like a sorted view of anINotifyCollectionChange
- Added
Synchronize
extension method. For those times you want to update an OCP with a source collection and a factory
Non-library changes
- Fixed the WPF demo around property watcher
- Removed Phone from the main solution (since it remains broken)
- Added another layer of directories to builds, so there are no longer collisions between Silverlight and WPF build outputs
v1.0.6
- Added support for critical inner exceptions to
IsCritical
- Moved
DispatcherExtensions
methods to useSynchronizationContext
, which is more general- Should likely rename the class to
SynchronizationContextExtensions
, huh?
- Should likely rename the class to
- Naming and param order changes to
PropertyChangeWatcher
- Breaking Change - Clean-up in the SL test project
- Added test for
PropertyChangeWatcher
v1.0.5
- A mountain of changes to
ObservableCollectionPlus<T>
- Added
Reset
method - Closes #21 - Made sort methods safe - Closes #22
- Added
MultiUpdateActive
- Changed the location of the call to protected
AfterMultiUpdate
to before raising reset
- Added
v1.0.4
- A mountain of clean-up in demo and test code
- Added
WatchProperty
extension method toExtensions
- NEW
PropertyChangeWatcher
- Issue #16 - Added some usage details to
InstanceFactory
- Added
Util.ThrowUnless
Extensions.GetCustomAttributes
-> change paramMemberInfo
to more genericICustomAttributeProvider
- Issue #19- Added
AddRange
toObservableCollectionPlus<T>
- Issues # 17 - Some work to get Windows Phone 7 projects to load, although I've hit a snag with sharing generic.xaml between SL4 and Phone - progress towards Issue #18
v1.0.3
- Much smarter implementation of
Util.GetHashCode
- Added
ClearErrors
toDataErrorHelper
- Moved the
targets
files - Removed
[DataContract]
fromChangeable
- and cried that serialization support in Silverlight wasn't more flexible AsyncValue
: addedLoadCommand
property andLoadError
event - Closes #10