protected override object GetRawValueInternal(IBindingMemberInfo targetMember, IDataContext context, bool throwOnError) { var values = new object[_sources.Length]; for (int i = 0; i < _sources.Length; i++) { IBindingPathMembers members = _sources[i].GetPathMembers(true); object value = members.GetLastMemberValue(); if (members.Path.IsDebuggable) { DebugInfo($"MultiBinding got a raw value: '{value}', for path: '{members.Path}'", new[] { value, members }); } if (value.IsDoNothing()) { return(BindingConstants.DoNothing); } if (value.IsUnsetValue()) { return(BindingConstants.UnsetValue); } values[i] = value; } if (_sources[0].Path.IsDebuggable) { DebugInfo("MultiBinding applying format expression", new object[] { _formatExpression, values }); var result = _formatExpression(context, values); DebugInfo($"MultiBinding format expression returns value: '{result}'"); return(result); } return(_formatExpression(context, values)); }
protected override object GetRawValueInternal(IBindingMemberInfo targetMember, IDataContext context, bool throwOnError) { IBindingPathMembers members = _bindingSource.GetPathMembers(throwOnError); var value = members.GetLastMemberValue(); if (members.Path.IsDebuggable) { DebugInfo($"Binding got a raw value: '{value}', for path: '{members.Path}'", new[] { value, members }); } return(value); }