summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Core/OnPlatform.cs
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2017-04-25 20:06:29 +0200
committerJason Smith <jason.smith@xamarin.com>2017-04-25 11:06:29 -0700
commit9b49e3f1c1f82a05bb1f282cd5b251228a357ae7 (patch)
tree3e343815cb2fa4dd0f53b3bd39948c004bf9797c /Xamarin.Forms.Core/OnPlatform.cs
parent8e567b9ad1669265d994c84acd5c49d43829a3da (diff)
downloadxamarin-forms-9b49e3f1c1f82a05bb1f282cd5b251228a357ae7.tar.gz
xamarin-forms-9b49e3f1c1f82a05bb1f282cd5b251228a357ae7.tar.bz2
xamarin-forms-9b49e3f1c1f82a05bb1f282cd5b251228a357ae7.zip
[Xaml] OnPlatform.Default value (#873)
* [Xaml] OnPlatform.Default value * docs
Diffstat (limited to 'Xamarin.Forms.Core/OnPlatform.cs')
-rw-r--r--Xamarin.Forms.Core/OnPlatform.cs14
1 files changed, 13 insertions, 1 deletions
diff --git a/Xamarin.Forms.Core/OnPlatform.cs b/Xamarin.Forms.Core/OnPlatform.cs
index 68621134..c179dc57 100644
--- a/Xamarin.Forms.Core/OnPlatform.cs
+++ b/Xamarin.Forms.Core/OnPlatform.cs
@@ -43,9 +43,21 @@ namespace Xamarin.Forms
}
}
+ bool hasDefault;
+ T @default;
+ public T Default {
+ get { return @default; }
+ set {
+ hasDefault = true;
+ @default = value;
+ }
+ }
+
public IList<On> Platforms { get; private set; }
+#pragma warning disable RECS0108 // Warns about static fields in generic types
static readonly IValueConverterProvider s_valueConverter = DependencyService.Get<IValueConverterProvider>();
+#pragma warning restore RECS0108 // Warns about static fields in generic types
public static implicit operator T(OnPlatform<T> onPlatform)
{
@@ -60,7 +72,7 @@ namespace Xamarin.Forms
}
if (!onPlatform.useLegacyFallback)
- return default(T);
+ return onPlatform.hasDefault ? onPlatform.@default : default(T);
//legacy fallback
#pragma warning disable 0618, 0612