主控关闭child

Main control to close child

我有一个 MainControl,其中包含一个 ChildControlChildControl 有一个可以隐藏自身的隐藏按钮。 隐藏时,我希望 MainControl 挂钩事件并处理它。

不知道我应该如何挂钩。

有什么建议吗?谢谢!

您可以创建一个事件,通知主控件子控件被隐藏,在您的主控件中,处理该事件,您可以处理您的控件。

下面是一个小示例代码,说明如何为隐藏操作创建事件。

    class MainControl
    {
        ChildControl childControl;

        public MainControl()
        {
            childControl = new ChildControl();
            childControl.VisibilityChanged += childControl_VisibilityChanged;
        }

        void childControl_VisibilityChanged(object sender, HiddenEvent e)
        {
            if (e.isHidden)
            {
                //close control here
            }
        }
    }

    public class HiddenEvent : EventArgs
    {
        public HiddenEvent(bool propertyValue)
        {
            this.isHidden = propertyValue;
        }

        public bool isHidden { get; set; }
    }
    public class ChildControl
    {
        public event EventHandler<HiddenEvent> VisibilityChanged;

        public ChildControl()
        {

        }

        private bool _isHidden;
        public bool Control
        {
            get
            {
                return _isHidden;
            }
            set
            {
                _isHidden = value;
                Hidden_Handler(value);
            }
        }

        private void Hidden_Handler(bool isHidden)
        {
            var handler = VisibilityChanged;
            if (handler != null)
                VisibilityChanged(this, new HiddenEvent(isHidden));
        }
    }

作为一个选项,您可以将 ChildControl 的按钮绑定到主控件上的删除命令(使用 RelativeSource)并让 MainControl 完成所有工作