This repository was archived by the owner on May 1, 2024. It is now read-only.
File tree 4 files changed +38
-2
lines changed
Xamarin.Forms.Xaml.UnitTests
docs/Xamarin.Forms.Core/Xamarin.Forms
4 files changed +38
-2
lines changed Original file line number Diff line number Diff line change @@ -43,9 +43,21 @@ public T WinPhone {
43
43
}
44
44
}
45
45
46
+ bool hasDefault ;
47
+ T @default ;
48
+ public T Default {
49
+ get { return @default ; }
50
+ set {
51
+ hasDefault = true ;
52
+ @default = value ;
53
+ }
54
+ }
55
+
46
56
public IList < On > Platforms { get ; private set ; }
47
57
58
+ #pragma warning disable RECS0108 // Warns about static fields in generic types
48
59
static readonly IValueConverterProvider s_valueConverter = DependencyService . Get < IValueConverterProvider > ( ) ;
60
+ #pragma warning restore RECS0108 // Warns about static fields in generic types
49
61
50
62
public static implicit operator T ( OnPlatform < T > onPlatform )
51
63
{
@@ -60,7 +72,7 @@ public static implicit operator T(OnPlatform<T> onPlatform)
60
72
}
61
73
62
74
if ( ! onPlatform . useLegacyFallback )
63
- return default ( T ) ;
75
+ return onPlatform . hasDefault ? onPlatform . @default : default ( T ) ;
64
76
65
77
//legacy fallback
66
78
#pragma warning disable 0618 , 0612
Original file line number Diff line number Diff line change 37
37
</OnPlatform >
38
38
</Label .Text>
39
39
<Label .HeightRequest>
40
- <OnPlatform x : TypeArguments =" x:Double" >
40
+ <OnPlatform x : TypeArguments =" x:Double" Default = " 63 " >
41
41
<On Platform =" iOS" >21</On >
42
42
<On Platform =" Android, FooBar" >42</On >
43
43
</OnPlatform >
Original file line number Diff line number Diff line change @@ -121,7 +121,15 @@ public void OnPlatform2Syntax(bool useCompiledXaml)
121
121
( ( MockPlatformServices ) Device . PlatformServices ) . RuntimePlatform = "FooBar" ;
122
122
layout = new OnPlatform ( useCompiledXaml ) ;
123
123
Assert . AreEqual ( 42 , layout . label0 . HeightRequest ) ;
124
+ }
124
125
126
+ [ TestCase ( false ) ]
127
+ [ TestCase ( true ) ]
128
+ public void OnPlatformDefault ( bool useCompiledXaml )
129
+ {
130
+ ( ( MockPlatformServices ) Device . PlatformServices ) . RuntimePlatform = "\ud83d \ude80 " ;
131
+ var layout = new OnPlatform ( useCompiledXaml ) ;
132
+ Assert . AreEqual ( 63 , layout . label0 . HeightRequest ) ;
125
133
}
126
134
}
127
135
}
Original file line number Diff line number Diff line change 75
75
<remarks >To be added.</remarks >
76
76
</Docs >
77
77
</Member >
78
+ <Member MemberName =" Default" >
79
+ <MemberSignature Language =" C#" Value =" public T Default { get; set; }" />
80
+ <MemberSignature Language =" ILAsm" Value =" .property instance !T Default" />
81
+ <MemberType >Property</MemberType >
82
+ <AssemblyInfo >
83
+ <AssemblyVersion >2.0.0.0</AssemblyVersion >
84
+ </AssemblyInfo >
85
+ <ReturnValue >
86
+ <ReturnType >T</ReturnType >
87
+ </ReturnValue >
88
+ <Docs >
89
+ <summary >To be added.</summary >
90
+ <value >To be added.</value >
91
+ <remarks >To be added.</remarks >
92
+ </Docs >
93
+ </Member >
78
94
<Member MemberName =" iOS" >
79
95
<MemberSignature Language =" C#" Value =" public T iOS { get; set; }" />
80
96
<MemberSignature Language =" ILAsm" Value =" .property instance !T iOS" />
You can’t perform that action at this time.
0 commit comments