Skip to content

Commit 21ab068

Browse files
committed
Add the generic variant for NControlViewRenderer
This will ease re-use for controls that inherit from NControlView, by providing direct access to the rendered class, in case it's different than NControlView, without having to cast it manually.
1 parent f4f5f09 commit 21ab068

2 files changed

Lines changed: 13 additions & 7 deletions

File tree

NControl/NControl.Droid/NControlViewRenderer.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,14 @@
3838
[assembly: ExportRenderer(typeof(NControlView), typeof(NControlViewRenderer))]
3939
namespace NControl.Droid
4040
{
41+
public class NControlViewRenderer : NControlViewRenderer<NControlView> { }
42+
4143
/// <summary>
4244
/// NControlView renderer.
4345
/// </summary>
4446
[Preserve(AllMembers = true)]
45-
public class NControlViewRenderer : VisualElementRenderer<NControlView>
47+
public class NControlViewRenderer<TNControlView> : VisualElementRenderer<TNControlView>
48+
where TNControlView : NControlView
4649
{
4750
/// <summary>
4851
/// Used for registration with dependency service
@@ -56,7 +59,7 @@ public static void Init ()
5659
/// Raises the element changed event.
5760
/// </summary>
5861
/// <param name="e">E.</param>
59-
protected override void OnElementChanged(ElementChangedEventArgs<NControlView> e)
62+
protected override void OnElementChanged(ElementChangedEventArgs<TNControlView> e)
6063
{
6164
base.OnElementChanged(e);
6265

NControl/NControl.iOS/NControlViewRenderer.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,14 @@
3939
[assembly: ExportRenderer(typeof(NControlView), typeof(NControlViewRenderer))]
4040
namespace NControl.iOS
4141
{
42-
/// <summary>
43-
/// NControlView renderer.
44-
/// </summary>
42+
public class NControlViewRenderer : NControlViewRenderer<NControlView> { }
43+
44+
/// <summary>
45+
/// NControlView renderer.
46+
/// </summary>
4547
[Preserve(AllMembers = true)]
46-
public class NControlViewRenderer: VisualElementRenderer<NControlView>
48+
public class NControlViewRenderer<TNControlView> : VisualElementRenderer<TNControlView>
49+
where TNControlView : NControlView
4750
{
4851
/// <summary>
4952
/// The gesture recognizer.
@@ -62,7 +65,7 @@ public class NControlViewRenderer: VisualElementRenderer<NControlView>
6265
/// Raises the element changed event.
6366
/// </summary>
6467
/// <param name="e">E.</param>
65-
protected override void OnElementChanged(ElementChangedEventArgs<NControlView> e)
68+
protected override void OnElementChanged(ElementChangedEventArgs<TNControlView> e)
6669
{
6770
base.OnElementChanged(e);
6871

0 commit comments

Comments
 (0)