public override void Attach(FrameworkElement element, BaseValueSource valueSource) { IDataTriggerCondition condition = CreateDataTriggerCondition(element); condition.IsMatchedChanged += (sender, e) => OnConditionIsMatchedChanged(element, valueSource, condition.IsMatched); if (condition.IsMatched) { Apply(element, valueSource); } attachedConditions.Add(element, condition); }
public override void Detach(FrameworkElement element, BaseValueSource valueSource) { IDataTriggerCondition condition = attachedConditions[element]; if (condition.IsMatched) { Clean(element, valueSource); } if (condition is IDisposable) { ((IDisposable)condition).Dispose(); } attachedConditions.Remove(element); }