using System; using Xamarin.Forms.Xaml; namespace Xamarin.Forms.Pages { [ContentProperty("Path")] public sealed class DataSourceBindingExtension : IMarkupExtension { public DataSourceBindingExtension() { Mode = BindingMode.Default; Path = Binding.SelfPath; } public IValueConverter Converter { get; set; } public object ConverterParameter { get; set; } public BindingMode Mode { get; set; } public string Path { get; set; } public string StringFormat { get; set; } object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider) { return (this as IMarkupExtension).ProvideValue(serviceProvider); } BindingBase IMarkupExtension.ProvideValue(IServiceProvider serviceProvider) { return new DataSourceBinding(Path, Mode, Converter, ConverterParameter, StringFormat); } } }