Home All Groups Group Topic Archive Search About

Keeping 2 user controls of the same class synced

Author
15 Dec 2006 5:42 AM
yashgt
On a page, I need to show one item at a time. The top of the page has a
Previous-Next control, followed by the item being shown, followed by
another Previous-Next control. I have created a P-N user control and
customized it to fire an event, OnChange, when a Previous or Next
button is clicked, which is handled by the containing page. The handler
takes the ID of the current item from the eventargs and displays the
proper item with the ID in the center. But In addition, I want the
other P-N control also to reach the same state as the one that fired
the event. So the CurrentID property of both the P-N controls would be
the same.
Any design suggestions?

Thanks,
Yash

Author
15 Dec 2006 8:15 AM
Laurent Bugnion
Hi,

yas***@gmail.com wrote:
Show quoteHide quote
> On a page, I need to show one item at a time. The top of the page has a
> Previous-Next control, followed by the item being shown, followed by
> another Previous-Next control. I have created a P-N user control and
> customized it to fire an event, OnChange, when a Previous or Next
> button is clicked, which is handled by the containing page. The handler
> takes the ID of the current item from the eventargs and displays the
> proper item with the ID in the center. But In addition, I want the
> other P-N control also to reach the same state as the one that fired
> the event. So the CurrentID property of both the P-N controls would be
> the same.
> Any design suggestions?
>
> Thanks,
> Yash

Since your user control fires an event OnChange, have the other user
control register that very event. Of course, that means that the target
user control must have knowledge of the event's definition, but that's
the case anyway since both are of the same class (as per your subject line).

Other ways would be using a listener pattern, having the target UC
register at the source UC for changes. When a change occurs, the source
UC loops through all the registered listeners and calls a method on
them. The method is defined in an interface IListener (or whatever ;-),
which introduces only a loose relationship between the two user controls.

HTH,
Laurent
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
PhotoAlbum: http://www.galasoft-LB.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch
Author
10 Jan 2007 11:05 AM
Gaurav Vaish (www.Edujini-Labs.com)
> Other ways would be using a listener pattern, having the target UC
> register at the source UC for changes. When a change occurs, the source UC
> loops through all the registered listeners and calls a method on

That's what precisely the multicast-delegates and events are!
Well, if you publish an event and somebody subscribes to it, it IS the
listener pattern. You don't need to have IListener. :)


--
Happy Hacking,
Gaurav Vaish | www.mastergaurav.com
www.edujini-labs.com
http://eduzine.edujinionline.com
-----------------------------------------