protected override object ProvideExpression(IServiceProvider provider, BindableObject obj, PropertyInfo property) { if (provider == null) { throw new ArgumentNullException(nameof(provider)); } if (property == null) { throw new ArgumentNullException(nameof(property)); } var expression = new GetExpression { Source = Source, Path = Path, Format = Format != null && Format.IndexOf('{') < 0 ? "{0:" + Format + "}" : Format, Converter = Converter, Culture = Culture, Parameter = Parameter, TargetObject = obj, TargetType = property.PropertyType, }; obj?.Bind(property, expression); return(expression.GetValue()); }