c# raise event from another static event in another class
c#, events
Solution
You can only invoke an event in the class where you have defined the event. What is common is to use a specific method to fire the event, which you have to add in the class where you define the event. In your case, in the class MxPBaseGridView. Add the following:
public void OnAddNewItemsToPopUpMenu(<eventargstype> e) {
var addNewItemsToPopUpMenu = AddNewItemsToPopUpMenu;
if (addNewItemsToPopUpMenu != null)
addNewItemsToPopUpMenu(this, e);
}
Note: I'm not sure what the eventargs-type is, so I've left it open.
Then you can call this method from your static method.
Note: normally I define the On... methods as private, if necessary as protected. In this case I've defined it public since you need to call it from outside your class.
Problem
Need help calling event from another class. I have class with declared event: ``` public class MxPBaseGridView : GridView { public event AddNewItemsToPopUpMenuEventHandler AddNewItemsToPopUpMenu; ... } ``` Another class from which i need to call event has methods and "AddNewItemsToPopUpMenuEventHandler " delegate ``` public delegate void AddNewItemsToPopUpMenuEventHandler(PopupMenuShowingEventArgs e); public static class GridViewUtils { public static void gridView_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e) { if (e.MenuType != DevExpress.XtraGrid.Views.Grid.GridMenuType.Row) { if (menu != null) { if (sender is MxPBaseAdvBandedGridView) { MxPBaseAdvBandedGridView currentGrid = sender as MxPBaseAdvBandedGridView; ... currentGrid.AddNewItemsToPopUpMenu(); if (currentGrid.AddNewItemsToPopUpMenu != null) //there i need to call event currentGrid.AddNewItemsToPopUpMenu(e); // how you understand it doesn't work } ``` so what is the right way to do the same job?