来自具有不同参数的另一个事件的火灾事件



我想从一个事件触发另一个事件。

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);
}

注意

  1. 这可能会崩溃或以意外的方式工作,因为您自己触发了事件。因此,请确保您获得适当或间接SceneGraphChartCore

  2. 还要照顾发件人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);

最新更新