using InABox.Core;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace InABox.Wpf
{
    public interface ICustomValueNode
    {
        CustomFilterValue? Value { get; set; }

        /// <summary>
        /// Get the framework element for this node; in many cases, this will just link to <see langword="this"/> (assuming that the implementing class is a <see cref="System.Windows.FrameworkElement"/>).
        /// </summary>
        FrameworkElement FrameworkElement { get; }

        public delegate void ValueChangedHandler(ICustomValueNode sender, CustomFilterValue? value);
        event ValueChangedHandler? ValueChanged;
    }
}
