diff options
Diffstat (limited to 'Xamarin.Forms.Xaml/MarkupExtensions')
-rw-r--r-- | Xamarin.Forms.Xaml/MarkupExtensions/BindingExtension.cs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Xamarin.Forms.Xaml/MarkupExtensions/BindingExtension.cs b/Xamarin.Forms.Xaml/MarkupExtensions/BindingExtension.cs index 5b519e62..df82771d 100644 --- a/Xamarin.Forms.Xaml/MarkupExtensions/BindingExtension.cs +++ b/Xamarin.Forms.Xaml/MarkupExtensions/BindingExtension.cs @@ -1,4 +1,5 @@ using System; +using Xamarin.Forms.Internals; namespace Xamarin.Forms.Xaml { @@ -25,9 +26,20 @@ namespace Xamarin.Forms.Xaml public string UpdateSourceEventName { get; set; } + public TypedBindingBase TypedBinding { get; set; } + BindingBase IMarkupExtension<BindingBase>.ProvideValue(IServiceProvider serviceProvider) { - return new Binding(Path, Mode, Converter, ConverterParameter, StringFormat, Source) { UpdateSourceEventName = UpdateSourceEventName }; + if (TypedBinding == null) + return new Binding(Path, Mode, Converter, ConverterParameter, StringFormat, Source) { UpdateSourceEventName = UpdateSourceEventName }; + + TypedBinding.Mode = Mode; + TypedBinding.Converter = Converter; + TypedBinding.ConverterParameter = ConverterParameter; + TypedBinding.StringFormat = StringFormat; + TypedBinding.Source = Source; + TypedBinding.UpdateSourceEventName = UpdateSourceEventName; + return TypedBinding; } object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider) |