Keeping 2 user controls of the same class synced

Y

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
 
L

Laurent Bugnion

Hi,

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
 
G

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
-----------------------------------------
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top