Project Description
A library to enable attaching Caliburn.Micro messages to FrameworkContentElement descendant objects.
Target platform: WPF.

What this package is for?
Caliburn.Micro is a very powerful MVVM framework which supports attaching Message objects to FrameworkElement descendant objects. This way you can avoid using Command objects to bind viewmodel methods to your view's events.
DXBars and DXRibbon are very good menu, toolbar and ribbon controls, but have a big drawback: as you can see here and here the items in these controls are FrameworkContentElement descendants which means you can't use Caliburn.Micro's Message objects with them. And the worst thing is that they do not want to change this behaviour.
This package is created to let developers use Caliburn.Micro's Message.Attach mechanism with DevExpress' controls. Actually you can't really use Caliburn.Micro's Message.Attach because it was impossible to implement, so I decided to create a new package from Caliburn.Micro's code which contains only the classes needed to implement the Message.Attach feature on FrameworkContentElement descendants with the least changes in CM's codebase.

Important note
This package is only for attaching messages to FrameworkContentElement descendants, so every other class included in the package is included only because it was absolutely necessary to compile the project. So, DO NOT USE classes or features other than Message.Attach in this package! If you need any other Caliburn.Micro feature, please, use the original Caliburn.Micro package!

How to attach messages to FrameworkContentElement descendants?
  • Reference the package in your project.
  • In your XAML do the following:
    • Import this package with the following line: xmlns:calfce="clr-namespace:Caliburn.Micro.FrameworkContentElement;assembly=Caliburn.Micro.FrameworkContentElement"
    • Attach message with the following attribute: calfce:Message.Attach="[Event ItemClick] = [Action ViewModelMethodName()]"

Nuget package
Easiest way to use it is the Caliburn.Micro.FrameworkContentElement package.

Enabling conventions for DevExpress controls
If you need Caliburn.Micro conventions to work with DevExpress controls, you can use my related project Caliburn.Micro.DevExpress. I personally use these two packages together, too.

Last edited Aug 14, 2012 at 11:22 AM by pjenei, version 3