Thanks this looks like just what I need. By the way, this code is running
in a class that manages some custom bindings and tgt is a reference to a
user control on a canvas. when I connect a line to tgt, I use a custom
binding in this class. When tgt becomes un-connected I unbind it from the
line and no longer need a reference to tgt so I set tgt=null in the binding
management class. However, tgt is still alive and well in the canvas.
Saying all of this, is it appropriate to set tgt to null here? or should I
do something else?
"Jon Skeet [C# MVP]" <sk***@pobox.comwrote in message
news:MP************************@msnews.microsoft.c om...
moondaddy <mo*******@noemail.noemailwrote:
>I'm working in WPF and c# and am adding an event handler to an object
like
this:
this.tgt.SizeChanged += new SizeChangedEventHandler(OnTargetSizeChanged);
Later I kill the instance of tgt like this:
tgt = null;; //which I'm not sure this is the most correct way of
getting
rid of it.
That's not "killing" anything. It's making the object available to the
garbage collector *if* nothing else is referencing it. Is it still a
control on the form, perhaps?
>However, I find that the event 'OnTargetSizeChanged' is still fireing.
Evedently the event handler is still alive and wired. Before I kill the
object 'tgt', should I be removing any attached event handlers? If
so, how?
Well, I think you need to seriously consider how you're "removing" tgt,
but to remove the event handler, just do:
this.tgt.SizeChanged -= new SizeChangedEventHandler
(OnTargetSizeChanged);
--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too