Laden...

WPF zeige Daten aus Datenstrom

Erstellt von KuGBeginner vor einem Jahr Letzter Beitrag vor einem Jahr 500 Views
K
KuGBeginner Themenstarter:in
21 Beiträge seit 2015
vor einem Jahr
WPF zeige Daten aus Datenstrom

Hallo an das Forum,

ich nutze ein MVVM Model für mein WPF Programm.
In meinem ViewModel verwende ich folgenden Code:


      CurrentData = myDataStream.ToString(); //??

       private string _currentData;
       public string CurrentData
        {
            get => _currentData;
            set
            {
                if (_currentData != value)
                {
                    _currentData = value;
                    this.RaisePropertyChanged();
                }
            }
        }

Das Binding zu Xaml und RaisePropertyChanged() sind funktionsfähig.
Mit einer anderen Property kann ich z.B. in einer TextBox meine Daten verändern.

Ich möchte aus einer externen Quelle myDataStream in einer TextBox anzeigen;
hierbei handelt es sich (vereinfacht) um Zahlen von 0 - 100.
Der bisherige Entwicklungsstand zeigt nur eine 0, obwohl ich bei Verwendung von
RaisePropertyChanged() erwartet hätte, dass die Zahlen sich bis 100 verändern.
Ist es erforderlich einen zusätzlichen Eventhandler zu erstellen, brauche ich eine
ObservableCollection oder was ich des Rätsels Lösung?
Vielen Dank für die Unterstützung!

P
441 Beiträge seit 2014
vor einem Jahr

Hi,

was ist denn myDataStream für eine Datenquelle? Ist das ein Stream?
Wenn du dort aktuell nur eine 0 ausgelesen bekommst, wirst du einfach weiter lesen müssen und dann entweder an CurrentData appenden oder setzen müssen, damit weitere Daten auf deiner UI angezeigt werden.

K
KuGBeginner Themenstarter:in
21 Beiträge seit 2015
vor einem Jahr

ja, es handelt sich um einen Datenstrom eines externen Programms ==> die Daten werden über einen NamedPiperServer eingelesen.
Wenn ich das Programm starte, kann ich in MainWindow die Daten auch lesen.

Wegen des MVVM Models möchte ich einen Aufruf aus MainWindow vermeiden.
Wenn ich es richtig verstanden habe, muss der Datenabruf im ViewModel erfolgen und hier fehlt mir das Wissen, wie dies zu erfolgen hat.
Die einfache Zuweisung an die Property scheint ja nicht zu funktionieren...

Was heißt "appenden" ==> das kenne ich nur bei files und nicht bei Properties?

K
KuGBeginner Themenstarter:in
21 Beiträge seit 2015
vor einem Jahr

vielen Dank für die Unterstützung!
Ich konnte das Problem mit einem Eventhandler zwischenzeitlich lösen.

P
261 Beiträge seit 2010
vor einem Jahr

Hallo KuGBeginner!

Da (immer) wild Events zu feuern, ist keine gute Idee! Außerdem scheinst du ja schon ganz nah an der Lösung zu sein!

Deine Property CurrentData wird in der View immer dann aktualisiert, wenn du ihr einen (neuen) Wert zuweist.

Im Prinziep must du also nur an der Stelle, wo du dein Event feuerst, deine Property aktualisieren.

Also bei jeder Änderung des Datenstreams eine Zuweisung zu CurrentData ausführen.