internal override void Apply(bool fromTarget) { base.Apply(fromTarget); if (_expression == null) { _expression = new BindingExpression(this, SelfPath); } _expression.Apply(fromTarget); }
public void PropertyChanged(object sender, PropertyChangedEventArgs args) { BindingExpressionPart part = NextPart ?? this; string name = args.PropertyName; if (!string.IsNullOrEmpty(name)) { if (part.IsIndexer) { if (name.Contains("[")) { if (name != string.Format("{0}[{1}]", part.IndexerName, part.Content)) return; } else if (name != part.IndexerName) return; } else if (name != part.Content) { return; } } Device.BeginInvokeOnMainThread(() => _expression.Apply()); }
void ApplyInner(Element templatedParent, BindableObject bindableObject, BindableProperty targetProperty) { if (_expression == null && templatedParent != null) { _expression = new BindingExpression(this, SelfPath); } _expression?.Apply(templatedParent, bindableObject, targetProperty); }