Well your question made me curious so I coded this as an experiment:
public abstract class MCV
{
public delegate void ClearHandler(object source, EventArgs
e);
public delegate void RefreshHandler(object source, EventArgs
e);
public delegate void EnableHandler(object source, EventArgs
e);
public delegate void DisableHandler(object source,
DisableEventArgs e);
public class DisableEventArgs : EventArgs
{
public readonly string Message = "";
public DisableEventArgs(string message)
{
this.Message = message;
}
}
public interface IViewable
{
bool Clear();
bool Refresh();
bool Enable();
bool Disable(string message);
}
public interface IViewableEvents
{
MCV.DisableHandler GetDisableHandler();
MCV.EnableHandler GetEnableHandler();
MCV.ClearHandler GetClearHandler();
MCV.RefreshHandler GetRefreshHandler();
}
} // end MCV class
The controller class fires events to all registered Views using
IViewableEvents, but each View can be individually disabled using
IViewable. A disabled View will ignore notify and refresh events.
http://www.geocities.com/jeff_louie/oop32.htm
Regards,
Jeff
*** Sent via Developersdex
http://www.developersdex.com ***