来自xaml的自定义渲染器的Xamarin访问属性

时间:2018-08-16 21:07:47

标签: xamarin.forms xamarin.ios custom-renderer

我有一个用于xamarin编辑器的ios定制渲染,我试图将Control.ScrollEnabled属性设置为在某些页面上为true,在其他页面上为false。

[assembly: ExportRenderer(typeof(ExtendedEditor), typeof(ExtendedEditorRenderer))]
namespace My.iOS.Renderers
{
    public class ExtendedEditorRenderer : EditorRenderer
    {
        public ExtendedEditor ExtendedEditorElement => Element as ExtendedEditor;

        protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement != null)
            {
                Control.ScrollEnabled = false;
            }
        }
    }
}

以上是我的客户渲染器代码。如您所见,ScrollEnabled属性始终设置为false。 有没有一种方法可以访问这些属性(例如,scrollenable,bordercolor,backgroundcolor等)并从XAML进行更改?

1 个答案:

答案 0 :(得分:1)

您将需要在 ExtendedEditor 控件上创建Properties/BindableProperties,然后使用创建的ExtendedEditorElement属性访问渲染器中的那些。

当您在 ExtendedEditor 类中声明了属性时,可以访问以下内容:

protected override void OnElementChanged(ElementChangedEventArgs<Editor> e)
{
    base.OnElementChanged(e);

    if (e.NewElement != null)
    {
        Control.ScrollEnabled = ExtendedEditorElement.ScrollEnabled;
    }
}