由于公司项目需要,临时上手做了些WPF的东西,其中遇到一个问题:A窗口和B窗口,B窗口有个倒计时的定时器,当倒计时结束时,修改A窗口的UI,这就需要回调函数,没接触过WPF啊,一通百度查之后,发现个类似于iOS协议的东西,代码如下
public delegate void UpdateMainwindowLabel();
public event UpdateMainwindowLabel updateMainwindowLabel;
// B界面中声明协议方法
if (updateMainwindowLabel != null)
updateMainwindowLabel();
//在B界面中,需要修改A界面的时刻掉用协议的方法,注意一定要判断是否签署协议,未签署则为null
ve = new VeCountdown(m_nCountDownTime);
ve.updateMainwindowLabel += SubWindow_updateMainwindowLabel;
//A界面中创建B界面时,签署协议,如同iOS中的 tableView.delegate=self;
最后实现协议方法就好啦
private void SubWindow_updateMainwindowLabel()
{
//修改UI
}
本人是靠iOS的协议方法去理解的WPF的这个方法,所以有什么不对的地方请多包涵和指教,欢迎评论和留言,互相学习