CustomRenderer для динамического изменения цвета границы - PullRequest
0 голосов
/ 12 мая 2018

У меня есть Entry, к которому я хочу добавить красную рамку при нажатии кнопки, если запись пуста. Поэтому мне нужно иметь возможность динамически менять цвет. (стандартный валидатор)

xaml:

<local:BorderChange Placeholder="Example Entry" BorderColor="#ff4444"></local:BorderChange>

Управление PCL:

namespace Project
{
    public class BorderChange : Entry
    {
        public string BorderColor
        {
            get; 
            set;
        }
    }
}

iOS Customrenderer:

[assembly: ExportRenderer(typeof(BorderChange), typeof(BorderColorChange))]
namespace Project.iOS
{
    public class BorderColorChange : EntryRenderer
    {
    //init color

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

            if(Control != null)
            {
                Control.Layer.BorderColor = UIColor.Blue; //This is where i want to add my color
            }
        }
    }
} 
  • Как передать свое свойство в CustomRenderer, чтобы я мог динамически изменять параметр BorderColor?

1 Ответ

0 голосов
/ 12 мая 2018

Лучшим подходом для таких нужд является использование Эффектов .

Здесь - это хорошо описанный пример того, как создать эффект с параметрами в качестве прикрепленных свойств. Вы сможете привязать свойство из модели представления (скажем, IsValid непосредственно к присоединенному свойству эффекта).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...