Laden...

[gelöst]Problem mit Datenbindung und InkCanvas / Darstellung von Strokes

Erstellt von iSliver vor 11 Jahren Letzter Beitrag vor 11 Jahren 739 Views
I
iSliver Themenstarter:in
57 Beiträge seit 2011
vor 11 Jahren
[gelöst]Problem mit Datenbindung und InkCanvas / Darstellung von Strokes

Hallo,
also mein aktuelles Problem ist, das ich serialisiert die inkrementellen Änderungen eines InkCanvas per Netzwerk übertrage, wobei ich beim wieder einlesen auch die korrekten Objekte bekomme, nur beim Anzeigen der Strokes tut sich nichts in der UI.
Habe die Strokes Eigenschaft in mein ViewModel gebunden und dort ändere ich dann die Strokes (Remove/Add).
Diese Strokes werden dann auch korrekt in die Collection im ViewModel eingetragen.
(Und dann das sich etwas geändert hat per NotifyPropertyChanged der UI mitgeteillt)

Nur passiert in der grafischen Oberfläche nichts, daher nehme ich an, dass das Datenbinding nicht richtig funktioniert hat.
Also hab ich mit Snoop mal nachgesehen und dort wurden keine Binding Errors gefunden und auch in Snoop die korrekten Werte angezeigt.


 public StrokeCollection ViewingStrokes
        {
            get { return _ViewingStrokes; }
            set { _ViewingStrokes = value; base.OnPropertyChanged("ViewingStrokes"); }
        }

Die Änderung sieht dann in etwa so aus:


 StrokeCollection complete = new StrokeCollection();
                    complete.Add(Serializers.DeSerializeStrokeCollection(Convert.FromBase64String(packet.Strokes)));
                    ViewingStrokes = complete;

Das Datenbinding hab ich im Code behind gemacht:

 ViewTabViewModel viewModel = new ViewTabViewModel();
TestViewTab.DataContext = viewModel;

TestView ist übrigens ne Tab Seite bzw das innere Grid.
Andere Bindungen funktionieren auch ohne Probleme.

Vielleicht muss man das Zeichnen manuell anstoßen oder brauch ich noch andere Daten ?
Fällt euch da ein öfter vorkommendes Problem ein/auf ?

mfg iSliver

/edit Lösung:
Die Objekte wurde nicht dargestellt aufgrund eines Datenfehlers, die Daten im Hintergrund waren korrupt und somit nicht darstellbar.
Alles andere war okay.

5.658 Beiträge seit 2006
vor 11 Jahren

Hi iSliver,

Also hab ich mit Snoop mal nachgesehen und dort wurden keine Binding Errors gefunden und auch in Snoop die korrekten Werte angezeigt.

DataBinding-Fehler werden auch von VisualStudio angezeigt (Output Window). Ansonsten gibt es auch einen DebugConverter, mit dem man DataBindings debuggen kann.

Das Datenbinding hab ich im Code behind gemacht:

Das ist kein DataBinding, das ist lediglich die Zuweisung des DataContextes. Interessant wäre die Stelle, an der du dein Stroke-ViewModel an die Canvas bindest.

Christian

Weeks of programming can save you hours of planning

I
iSliver Themenstarter:in
57 Beiträge seit 2011
vor 11 Jahren

Ja hab mich missverständlich bzw falsch ausgedrückt.
Das eigentliche Binding mache im xaml.

Strokes="{Binding ViewingStrokes,UpdateSourceTrigger=PropertyChanged}"