Да, это возможно и работает так же, как и события в нестатических классах (за исключением того, что вам, конечно, нужно объявить событие как static
).
Обратите внимание, что благодаря этой схеме вы можете (по крайней мере, теоретически) иметь несколько форм, вызывающих одновременно SaveData
, поэтому один экземпляр метода вызывает события, нацеленные на форму A, в то время как другой экземпляр вызывает события, нацеленные на Форма B. Поскольку событие является статическим, все события будут отслеживаться обеими формами, поэтому вы можете включить информацию в событие, которое форма может использовать, чтобы определить, представляет ли интерес конкретный вызов события.
Можно, например, собрать собственный класс EventArgs и передать в него DataTable
, чтобы прослушивающий код мог видеть, является ли это DataTable из этой формы. Если это так, пользовательский интерфейс будет обновлен, если это не так, вызов может быть просто проигнорирован.