Xamarin表单-从自定义渲染器检查控件是否具有从XAML设置的属性

时间:2018-08-01 14:05:55

标签: xamarin xamarin.forms xamarin.ios

我为某些控件(ButtonPickerLabel)提供了自定义渲染器,并且在自定义渲染器中设置了一些常用属性,在某些情况下,我想要设置不同的属性,这些属性是我从XAML设置的。但是,由于有自定义渲染器,因此XAML中设置的属性将被覆盖。如果这些属性是从XAML设置的,并且可以避免常见的行为,是否有任何方法可以检查自定义渲染器?

1 个答案:

答案 0 :(得分:2)

您可以在相应的可绑定属性上使用DefaultValue属性添加支票。

例如,以下代码仅在未以XAML,样式或绑定设置控件上的BackgroundColor属性的情况下才分配新值。

if(Element is Label lbl)
{
    if(lbl.BackgroundColor.Equals(Label.BackgroundColorProperty.DefaultValue))
    {
        lbl.BackgroundColor = newValue;
    }
}