我有一个MainControl
,其中包含ChildControl
。 ChildControl
有一个隐藏自己的隐藏按钮。
隐藏时,我希望MainControl
挂钩事件并处理它。
无法弄清楚我应该如何勾选这些。
任何提示?谢谢!
答案 0 :(得分:1)
您可以创建一个事件,通知主控件隐藏子控件,并在主控件中处理事件,您可以处置您的控件。
以下是一个示例代码,介绍如何为隐藏操作创建活动。
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));
}
}
答案 1 :(得分:0)
作为一个选项,您可以将ChildControl的按钮绑定到主控件上的remove命令(使用RelativeSource),让MainControl完成所有工作