网格的自定义渲染器

Custom renderer for Grid

我正在尝试在 UWP 中为 Xamarin.Forms.Grid 创建自定义 Renderer,但我无法弄清楚 ViewRenderer<TElement, TNativeElement> 的类型参数,有人可以帮忙吗我?

我试过 ViewRenderer<Grid, FrameworkElement>Controlnull

您需要通过覆盖 OnElementChanged 来设置控件 所以通过像上面那样继承来实现你的视图渲染器:

ViewRenderer<Xamarin.Forms.Grid, XControl.Grid>

然后覆盖 OnElementChanged:

using XControl = Windows.UI.Xaml.Controls;
.
.
.
protected override void OnElementChanged(ElementChangedEventArgs<XControl.Grid> e)
{
   if (e.NewElement != null)
   {
      if (Control == null)
      {
         var container = new XControl.Grid();
         SetNativeControl( container);
      }
   }
}

确保在覆盖 OnElementChanged 时调用 base.OnElementChanged,然后再检查控件是否为 null,否则它将为 null

 protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Entry> e)
        {
            base.OnElementChanged(e);
            if (Control != null)
           Control.BackgroundColor = UIKit.UIColor.Red;

        }

出于我的目的,我使用了:

ViewRenderer<Grid, Android.Widget.GridView>