Click here to Skip to main content
15,885,366 members
Home / Discussions / C#
   

C#

 
GeneralRe: Compiling .Net 1.1 Pin
PIEBALDconsult15-Jan-08 15:42
mvePIEBALDconsult15-Jan-08 15:42 
GeneralRe: Compiling .Net 1.1 Pin
Muammar©15-Jan-08 18:40
Muammar©15-Jan-08 18:40 
GeneralRe: Compiling .Net 1.1 Pin
mav.northwind15-Jan-08 19:14
mav.northwind15-Jan-08 19:14 
GeneralRe: Compiling .Net 1.1 Pin
Muammar©15-Jan-08 21:42
Muammar©15-Jan-08 21:42 
GeneralRe: Compiling .Net 1.1 Pin
mav.northwind16-Jan-08 8:02
mav.northwind16-Jan-08 8:02 
GeneralRe: Compiling .Net 1.1 Pin
Muammar©18-Jan-08 19:27
Muammar©18-Jan-08 19:27 
QuestionHow can i write application in Doc/view architecture in C# ? Pin
Yanshof14-Jan-08 19:14
Yanshof14-Jan-08 19:14 
AnswerRe: How can i write application in Doc/view architecture in C# ? Pin
Pete O'Hanlon15-Jan-08 3:16
mvePete O'Hanlon15-Jan-08 3:16 
You create a document, then map a view onto that document. Although, you may be better off considering the Model View Controller pattern, as this allows you to connect multiple views to one model (document). Here's a pseudo .NET 3.5 version.
public abstract class ModelBase
{
  public ModelBase() 
  {
    Title = string.Empty;
    FileLocation = string.Empty;
  }

  public string Title{ get ; set; }
  public string FileLocation { get ; set; }
  public abstract void FileSave();
}

public class MyDocument : ModelBase
{
  public MyDocument() : base() {}
  public override void FileSave() 
  { // Do something
  }
  // There'll be some events in here for model based operations.
}

public abstract class ViewBase<T> where T : ModelBase, new()
{
  public ViewBase(T model)
  {
    Model = model;
  }
  protected T Model { get ; set ; }
  public abstract void Refresh() {}
}

public class MyView : ViewBase<MyDocument>
{
  public MyView (MyDocument doc) : base (doc) 
  {
    // The view will be hooked up to some of the model events...
  }

  // Based on an event (such as a new item being added) the view will update
  public override void Refresh()
  {
    // Do something to refresh the view...
  }
}

public class ControllerBase<T, U>
  where T : ModelBase
  where U : ViewBase
{
  private T _model;
  private List<U> _views = new List&lt;U&gt;();
  public ControllerBase(T model)
  {
    _model = model;
  }
  public void AttachView(U view)
  {
    _views.Add(view);
  }

  // The event handlers will react to the model updating to trigger the refreshes here.
  public void RefreshAll()
  {
    foreach (ViewBase view in _views)
    {
      view.Refresh();
    }
  }
}
I've just typed this into IE, so I apologise if the syntax isn't 100% correct but this should get you started.


Deja View - the feeling that you've seen this post before.

My blog | My articles



QuestionNative XP/Vista Menu Pin
KienNT7814-Jan-08 17:53
KienNT7814-Jan-08 17:53 
GeneralRe: Native XP/Vista Menu Pin
Paul Conrad17-Jan-08 13:31
professionalPaul Conrad17-Jan-08 13:31 
GeneralRe: Native XP/Vista Menu Pin
Laserson24-Aug-09 19:38
Laserson24-Aug-09 19:38 
Generaldebugging Pin
justintimberlake14-Jan-08 17:22
justintimberlake14-Jan-08 17:22 
GeneralRe: debugging Pin
Skippums14-Jan-08 17:32
Skippums14-Jan-08 17:32 
QuestionDoes a race condition exist in the following code? Pin
Skippums14-Jan-08 14:57
Skippums14-Jan-08 14:57 
GeneralRe: Does a race condition exist in the following code? Pin
S. Senthil Kumar14-Jan-08 18:03
S. Senthil Kumar14-Jan-08 18:03 
GeneralRe: Does a race condition exist in the following code? Pin
Skippums15-Jan-08 4:48
Skippums15-Jan-08 4:48 
GeneralRe: Does a race condition exist in the following code? Pin
PIEBALDconsult15-Jan-08 15:45
mvePIEBALDconsult15-Jan-08 15:45 
GeneralRe: Does a race condition exist in the following code? Pin
Pete O'Hanlon16-Jan-08 1:20
mvePete O'Hanlon16-Jan-08 1:20 
QuestionDynamic Method Delegate [modified] Pin
Gywox14-Jan-08 14:25
Gywox14-Jan-08 14:25 
GeneralRe: Dynamic Method Delegate Pin
Mark Churchill14-Jan-08 21:49
Mark Churchill14-Jan-08 21:49 
GeneralRe: Dynamic Method Delegate Pin
Gywox14-Jan-08 23:26
Gywox14-Jan-08 23:26 
GeneralRe: Dynamic Method Delegate Pin
Mark Churchill15-Jan-08 2:00
Mark Churchill15-Jan-08 2:00 
GeneralComponent1 vs Infragistics vs Syncfusion Pin
kozu14-Jan-08 13:03
kozu14-Jan-08 13:03 
GeneralRe: Component1 vs Infragistics vs Syncfusion Pin
Not Active14-Jan-08 14:31
mentorNot Active14-Jan-08 14:31 
GeneralRe: Component1 vs Infragistics vs Syncfusion Pin
J$14-Jan-08 14:44
J$14-Jan-08 14:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.