我想从一个事件触发另一个事件。
private void ugTopActivity_FillSceneGraph(object sender, FillSceneGraphEventArgs e)
{
e.Something();
}
private void ugTopActivity_ChartDataClicked(object sender, ChartDataEventArgs e)
{
//I need to fire FillSceneGraph event from here.
ugTopActivity_ChartDataClicked(sender,e) // This doesn't work because 'e' Types are not convertable
}
如何从事件调用到具有不同事件参数类型的事件?
我将增强@Ashkan Mobayen Khiabani的答案,正如他所说,您需要创建一个新的FillSceneGraphEventArgs
对象并发送给ugTopActivity_ChartDataClicked
。
private void ugTopActivity_ChartDataClicked(object sender, ChartDataEventArgs e)
{
//I need to fire FillSceneGraph event from here.
var ev = new FillSceneGraphEventArgs(scene, core); // SceneGraph and ChartCore
ugTopActivity_ChartDataClicked(sender, ev);
}
注意
这可能会崩溃或以意外的方式工作,因为您自己触发了事件。因此,请确保您获得适当或间接
SceneGraph
和ChartCore
还要照顾发件人,
ugTopActivity_ChartDataClicked
可能会请求特定的发件人对象类型
如果你在ugTopActivity_FillSceneGraph
中不使用e
,你可以使用null
:
ugTopActivity_ChartDataClicked(sender, null);
否则,您可以自己创建事件参数,如下所示:
FillSceneGraphEventArgs event = new FillSceneGraphEventArgs(parameters here); //I'm not familiar with this event so don't know its arguments
ugTopActivity_ChartDataClicked(sender, event);