private static SelectorMatch MatchPropertyEquals(IStyleable x, PerspexProperty property, object value) { if (!PerspexPropertyRegistry.Instance.IsRegistered(x, property)) { return(SelectorMatch.False); } else { return(new SelectorMatch(x.GetObservable(property).Select(v => Equals(v, value)))); } }
/// <inheritdoc/> protected override SelectorMatch Evaluate(IStyleable control, bool subscribe) { if (subscribe) { return(new SelectorMatch(control.GetObservable(_property).Select(v => Equals(v ?? string.Empty, _value)))); } else { return(new SelectorMatch((control.GetValue(_property) ?? string.Empty).Equals(_value))); } }
/// <inheritdoc/> protected override SelectorMatch Evaluate(IStyleable control, bool subscribe) { if (subscribe) { return(new SelectorMatch(control.GetObservable(_property).Select(v => Equals(v ?? string.Empty, _value)))); } else { var result = (control.GetValue(_property) ?? string.Empty).Equals(_value); return(result ? SelectorMatch.AlwaysThisInstance : SelectorMatch.NeverThisInstance); } }
/// <inheritdoc/> protected override SelectorMatch Evaluate(IStyleable control, bool subscribe) { if (!PerspexPropertyRegistry.Instance.IsRegistered(control, _property)) { return(SelectorMatch.False); } else if (subscribe) { return(new SelectorMatch(control.GetObservable(_property).Select(v => Equals(v, _value)))); } else { return(new SelectorMatch(control.GetValue(_property).Equals(_value))); } }
/// <inheritdoc/> protected override SelectorMatch Evaluate(IStyleable control, bool subscribe) { if (!AvaloniaPropertyRegistry.Instance.IsRegistered(control, _property)) { return SelectorMatch.False; } else if (subscribe) { return new SelectorMatch(control.GetObservable(_property).Select(v => Equals(v, _value))); } else { return new SelectorMatch(control.GetValue(_property).Equals(_value)); } }
protected override void Initialize() { _subscription = _control.GetObservable(_property).Subscribe(this); }