public T GetProperty <T>(string key, Func <T> defaultValue = null) { if (defaultValue != null && ObservableProperties.ContainsKey(key) == false) { return(defaultValue()); } else { return(ObservableProperties.Get <T>(key)); } }