wpf - liaison datacontext aux propriétés statiques de la classe singleton

J'ai trouvé moi-même à l'aide d'une beaucoup de personne liaisons de ma classe App pour la conservation des propriétés et cela m'a conduit à un untracable stackoverflow exception. J'ai maintenant décidé de me déplacer ces propriétés à un singleton ApplicationInfo classe, mais je vais avoir quelques problèmes avec la liaison.

Si je lier directement à un membre de la propriété de ma classe, comme CurrentUser puis il fonctionne très bien. Mais quand j'essaie de lier un datacontext de cette classe j'obtiens des erreurs de compilation et je suis sûr qu'il ya des modifications simples que j'ai négligé.

J'ai créé un singleton de cette classe, mais maintenant, quand j'essaie de compiler, je reçois l'erreur "Unknown erreur de build - key ne peut pas être null" et il pointe vers mon Datacontext de liaison pour le message d'erreur.

Voici ma classe:

 public class ApplicationInfo
{
    private ApplicationInfo()
    {

    }
    private static ApplicationInfo _Current = new ApplicationInfo();
    public static  ApplicationInfo Current
    {
        get { return _Current; }         
    }

    #region Application Info Properties
    private static Assembly _ExecutingAssembly = System.Reflection.Assembly.GetExecutingAssembly();  //holds a copy of this app's assembly info
    public static String ApplicationName
    {
        get { return _ExecutingAssembly.ManifestModule.Name; }
    }
    public static String ApplicationNameTrimmed
    {
        get { return _ExecutingAssembly.ManifestModule.Name.TrimEnd('.', 'e', 'x'); }
    }
    public static String ApplicationPath
    {
        get { return _ExecutingAssembly.Location; }
    }
    public static String ApplicationVersion
    {
        get { return _ExecutingAssembly.GetName().Version.ToString(); }
    }
    public static DateTime ApplicationCompileDate
    {
        get { return File.GetCreationTime(Assembly.GetExecutingAssembly().Location); }
    }
    #endregion
    private static Boolean _hasOpenWindows;
    public static Boolean HasOpenWindows
    {
        get { return _hasOpenWindows; }
        set { _hasOpenWindows = value; }
    }

    private static User _currentuser;
    public static User CurrentUser
    {
        get { return _currentuser; }
        set { _currentuser = value; }
    }
    private static Mantissa.DAL _datalayer;
    public static Mantissa.DAL DataLayer
    {
        get { return _datalayer; }
        set { _datalayer = value; }
    }
    private static string _connectionstring;
    public static string ConnectionString
    {
        get { return _connectionstring; }
        set { _connectionstring = value; }
    }





}

Cela fonctionne:

`Title="{Binding Source={x:Static my:ApplicationInfo.ApplicationNameTrimmed}}"`

Ce n'est pas: (jette la clé ne peut pas être null msg)

DataContext="{Binding Source={x:Static my:ApplicationInfo.Current}}"

Mais quand j'ai mis la même propriété dans mon Appli classe alors cela fonctionne:

  DataContext="{Binding Source={x:Static Application.Current}}"

alors, comment puis-je résoudre ce problème?

source d'informationauteur TWood