Meine Frage ist, würden Sie das Beobachter-Muster implementieren, oder verwenden Sie die Datenbindung Folgendes zu tun:Observer Muster oder Databinding
Im Moment, ich bin eine Liste von GuiDataObj initialisiert. Wenn ein Ereignis ausgelöst wird, suche ich die GuiDataObjById nach und modifiziere dann das Objekt, das mit einem GuiElement verbunden ist; was die GUI aktualisiert.
Es gibt mehrere GuiElements (im Moment sind alle vom selben Typ, aber das könnte sich in der Zukunft ändern), ich möchte ein Klassenobjekt modifizieren und das GuiElement haben, um das GuiElement automatisch zu aktualisieren mit der reflektierten Veränderung.
Und dann muss mein GuiElement das Gui aktualisieren, wenn es über eine Änderung informiert wird?
public partial class GuiElementControl : UserControl, IObserver
{
public GuiElementControl()
{
InitializeComponent();
}
#region Implementation of IObserver
public void Notify<T>(T watchObj)
{
if (watchObj is GuiElement)
{
UpdateGui(watchObj);
}
}
private static void UpdateGui(object obj)
{
GuiElement element = obj as GuiElement;
if (element != null)
{
NameLbl.Text = element.GuiElementName;
StatusLbl.Text = element.Status;
}
}
#endregion
Wäre es ein flexibleres Design, wenn ich Datenbindung implementiert hätte, anstatt einen Beobachter über Änderungen zu informieren? Ich denke, was ich wirklich frage ist, was ist die flexibelste Möglichkeit, ein Business-Objekt visuell darzustellen, das ständig Updates in Echtzeit hat.
alt text http://devpupil.net/GuiConcept.PNG