Ejemplo n.º 1
0
        /// <summary>
        ///     Applies the current order of conditions to the <see cref="Conditions" /> collection
        /// </summary>
        public void ApplyOrder()
        {
            if (_disposed)
            {
                throw new ObjectDisposedException("ConditionalDataBinding");
            }

            _conditions.Sort((a, b) => a.Order.CompareTo(b.Order));
            for (int index = 0; index < _conditions.Count; index++)
            {
                DataBindingCondition <TLayerProperty, TProperty> condition = _conditions[index];
                condition.Order = index + 1;
            }
        }
Ejemplo n.º 2
0
        /// <inheritdoc />
        public TProperty GetValue(TProperty baseValue)
        {
            if (_disposed)
            {
                throw new ObjectDisposedException("ConditionalDataBinding");
            }

            DataBindingCondition <TLayerProperty, TProperty> condition = Conditions.FirstOrDefault(c => c.Evaluate());

            if (condition != null)
            {
                Console.WriteLine();
            }
            return(condition == null ? baseValue : condition.Value);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///     Adds a condition to the conditional data binding's <see cref="Conditions" /> collection
        /// </summary>
        /// <returns>The newly created <see cref="DataBindingCondition{TLayerProperty,TProperty}" /></returns>
        public DataBindingCondition <TLayerProperty, TProperty> AddCondition()
        {
            if (_disposed)
            {
                throw new ObjectDisposedException("ConditionalDataBinding");
            }

            DataBindingCondition <TLayerProperty, TProperty> condition = new DataBindingCondition <TLayerProperty, TProperty>(this);

            _conditions.Add(condition);

            ApplyOrder();
            OnConditionsUpdated();

            return(condition);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     Removes a condition from the conditional data binding's <see cref="Conditions" /> collection and disposes it
        /// </summary>
        /// <param name="condition"></param>
        public void RemoveCondition(DataBindingCondition <TLayerProperty, TProperty> condition)
        {
            if (_disposed)
            {
                throw new ObjectDisposedException("ConditionalDataBinding");
            }
            if (!_conditions.Contains(condition))
            {
                return;
            }

            _conditions.Remove(condition);
            condition.Dispose();

            ApplyOrder();
            OnConditionsUpdated();
        }