c# - get result from a call of registered event method and send it to class that called it? -
i using button call method available in sub
class main
class
how can retrieve result of type myobject
gotten when calling executemethoddelegate()
inside sub
class if method must register event first , wait until complete?
while debugging noticed when sub_myclick
executed not wait event called inside executemethoddelegate()
computed right way can not use result in main class...
main
void sub_myclick(object sender, eventargs e) { sub.executemethoddelegate(); //i have object sub available functions }
inside sub
execute event must interact user allow him pick object of type myobject
themethod getpicked
inside executemethoddelegate
register event leftbuttonreleaseevt like:
public void executemethoddelegate() { myinteractorstyle pick = myinteractorstyle.new(); pick.leftbuttonreleaseevt += (s, args) => getpicked(onleftbuttonup(s, args)); //here register , event select object //how can return myobject result main class //when getpicked finishs return myobject not know how return } private myobject onleftbuttonup(object sender, eventargs e) { //compute stuff //... //... //create object of type myobject named result return result; } public myobject getpicked(myobject result) { //result manipulated given conditions why anonymous function //then return result of type myobject executemethoddelegate() return result; }
so problem how recover event result , send main class how can retrieve , send result main class?
your sub
class can expose gotpicked
event contains myobject
in eventargs
, yoi van register in main
class
main:
public main() { sub.gotpicked += ongotpicked } void sub_myclick(object sender, eventargs e) { sub.executemethoddelegate(); //i have object sub available functions } public void ongotpicked(object sender, subeventargs e) { // myobject var myobject = e.myobject; } public class subeventargs : eventargs { public subeventargs(myobject obj) { myobject = obj; } public readonly myobject myobject { get; set; } }
sub:
public event eventhandler<subeventargs> gotpicked; public void getpicked(myobject result) { // stuff woth result gotpicked(this, new subeventargs(result);
Comments
Post a Comment