protected override void OnDetach() { foreach (var condition in this.attachedConditions) { condition.DetachTo(); condition.ConditionChanged -= this.OnConditionChanged; } this.attachedConditions.Clear(); this.triggerSource = null; this.validConditionCount = 0; }
protected override void OnAttachTo() { triggerSource = this.GetTypedTriggerSource <MultiTrigger>(); foreach (var condition in triggerSource.Conditions) { var associatedCondition = condition.AttachTo(this.Bindable); associatedCondition.ConditionChanged += this.OnConditionChanged; this.attachedConditions.Add(associatedCondition); if (associatedCondition.IsValid) { validConditionCount++; } } this.IsActive = validConditionCount == this.triggerSource.Conditions.Count; }