我正在开发Silverlight LOB应用程序。 由于一些必需的功能,我为所有页面创建了一个新的NewBasePage类。这个类是从Page类派生的。我已经添加了几个事件并手动提高它们。检查所有连接的方法是否成功完成
但我坚持一些东西。我需要检查绑定到某个事件的所有方法是否都成功完成。有没有办法做到这一点?
新的基类:
public class NewPageBase : Page
{
public void RefreshData(Action resultAction = null)
{
if (StartRefreshingData != null) StartRefreshingData(this, null);
if (resultAction != null) resultAction();
}
public event EventHandler StartRefreshingData;
}
的XAML:
<newbase:NewBasePage ...>
...
<i:Interraction.Triggers>
<i:EventTrigger EventName="StartRefreshingData">
<i:InvokeCommandAction Command="{StaticResource someCommandFromViewModel}"/>
</i:EventTrigger>
</i:Interraction.Triggers>
</newbase:NewBasePage>
据我所知,事件被同步调用,也就是说,当调用事件后的代码被调用时,所有附加事件处理程序的执行完成(显然不包括由它们启动的线程)。 – Nuffin 2012-01-07 14:10:54
托比亚斯是对的,事件同步运行。通过了解事件处理程序成功完成,你试图完成什么? – 2012-01-07 14:30:15
@ M.Babcock我正在提高'OnPageChanging'事件,如果附加的事件处理程序失败(我宁愿不抛出异常) - 那么我不会改变当前页面。 – 2012-01-07 15:52:59