none
Mehrere Fenster und Zugriff auf selbe Daten. Databinding? RRS feed

  • Frage

  • Hallo Forum,
    ich versuch mal mein Problem zu beschreiben ;)

    Ich habe eine Anwendung geschrieben die über die USB-Schnittstelle mit einem µC kommuniziert.
    Der µC schaltet einige Relais und stellt verschiedene Spannungen an einem DAC ein.
    Die Relais und DAC's habe ich als Klassen aufgebaut.
    Die Steuerung erfolgt über zwei Fenster von denen immer nur eins sichtbar ist. Es gibt ein Hauptfenster mit allen Steuerelementen und ein kleines Fenster mit ein paar ausgewählten Steuerelementen.

    Jetzt zum eigentlichen Problem:

    Wie verknüpfe ich z.B. eine Checkbox im Hauptfenster, die den Zustand eines Relais darstellt, sinnvoll mit der entsprechenden Checkbox auf dem kleinen Fenster?
    Mit data binding klappt das ganz gut. Allerdings habe ich dann das Problem das er mit den Befehl zum setzen des Relais mehrmals sendet... das wollte ich vermeiden.

    Ich erklär mir das so: Checkbox(hauptfenster).checked -> relay.state = true -> send_usb
                                                                                               |
                                                                                                -> checkbox(kleines Fenster).checked -> relay.state = true -> send_usb ......

    Wie macht man sowas am besten?

    Grüße Andy
    Dienstag, 25. August 2009 07:09

Antworten

  • Hallo Andy,

    ganz sicher bin ich mir nicht, ob ich Deiner Beschreibung folgen kann.

    Die eigentliche Steuerung des Relays sollte über die Klasse erfolgen und nicht über die Steuerelemente (Formulare).

    Um die Benachrichtigungen nur einmalig zu verschicken und mehrere Formulare/Steuerelemente
    über Datenbindung synchron zu halten implementiert man für Klassen INotifyPropertyChanged.
    Unter Gewusst wie: Implementieren der INotifyPropertyChanged-Schnittstelle findest Du ein Beispiel.

    In Deinem Falle kannst Du die Änderung (send_usb) in diese Benachrichtigung einhängen
    und nur beim effektiven Wechsel des Status reagieren.

    Gruß Elmar
    Mittwoch, 26. August 2009 08:44

Alle Antworten

  • Hallo Andy,

    ganz sicher bin ich mir nicht, ob ich Deiner Beschreibung folgen kann.

    Die eigentliche Steuerung des Relays sollte über die Klasse erfolgen und nicht über die Steuerelemente (Formulare).

    Um die Benachrichtigungen nur einmalig zu verschicken und mehrere Formulare/Steuerelemente
    über Datenbindung synchron zu halten implementiert man für Klassen INotifyPropertyChanged.
    Unter Gewusst wie: Implementieren der INotifyPropertyChanged-Schnittstelle findest Du ein Beispiel.

    In Deinem Falle kannst Du die Änderung (send_usb) in diese Benachrichtigung einhängen
    und nur beim effektiven Wechsel des Status reagieren.

    Gruß Elmar
    Mittwoch, 26. August 2009 08:44
  • Hallo Andy,

    Hat Dir die Antwort geholfen?

    Grüße,
    Robert

    Dienstag, 22. September 2009 15:13
  • Hallo Andy,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Montag, 5. Oktober 2009 20:38