public object GetValue(string name) { if ((_designTimeHandler != null) && Windows.ApplicationModel.DesignMode.DesignModeEnabled) { return(_designTimeHandler(name)); } if (_valueGetters.TryGetValue(name, out Func <object> getter)) { return(getter()); } else if (_alternateValues != null) { return(_alternateValues.GetValue(name)); } else { //Logs.UseLogger(l => l.ReportError($"Bound property {name} not found.")); return(null); } }
[IndexerName("Item")] // Technically not required, but cleaner. public object this[string name] { get { return(_localValues.GetValue(name)); } set { _localValues.SetValue(name, value); } }