How do I share data between multiple ViewModels ? 
For example there is a class named Project in application .
    public class Project : ModelBase
{
    private string _projectName;
    public string ProjectName
    {
        get { return _projectName; }
        set
        {
            _projectName = value;
            RaisePropertyChanged(() => ProjectName);
        }
    }
}
In multiple ViewModels application should access ActiveProject. 
 What's the best way to share Project between ViewModels ?
- Mediator Pattern ? (Messaging)
 - Static object
 - Singleton pattern (If yes how?)
 
I've used Messaging before but it needs much codding . For all ViewModels I've to create ActiveProject property and also have to register a messenger to update that.
I use MVVM Light framework.
Any code example would be appreciated.