Frage

Ich habe eine Silverlight-Datagrid, die eine einzelne Vorlage Spalte enthält, die eine Benutzersteuerung anzeigt. Die Benutzersteuerung hat einen Fortschrittsbalken Verarbeitung darstellen und wenn die Verarbeitung abgeschlossen ist eine Animation versteckt die Statusleiste und zeigt ein fertiges Etikett.

Es gibt zwei Fälle, in denen das Datenraster nicht scheint sich neu zu zeichnen:

Erste , wenn ein Benutzer eine Menge Scrollen funktioniert dann wird das Datagrid durch Nachziehen der Animation starten, wenn die Usercontrol in Sicht kommen und schließlich einen Punkt erreichen, wo er nichts neu zu zeichnen.

Zweite , gibt es ein Click-Ereignis in der Usercontrol, die ein Popup anzeigt. Wenn das Popup geschlossen wird dann wieder das Usercontrol nicht selbst richtig neu zu zeichnen.

Alle Ideen, warum dieses Verhalten auftritt und Wege, um es?

War es hilfreich?

Lösung

Die vorherige Antwort ist richtig. Ich habe festgestellt, dass manchmal muss man richtig die Loading_Row und Unloading_Row Ereignisse behandeln, wenn Sie alle Ihre Kontrollen wollen richtig verhalten. In meinen Fällen tatsächlich die Steuerelemente Eigenschaften an ein Objekt gebunden am besten funktionieren. Wenn Sie versuchen, auf Animationen und Sichtbarkeit verlassen und dergleichen werden Sie seltsame Verhalten sehen, aber wenn Sie die progressbar an ein Objekt binden, die den Fortschritt für jeden Punkt hinter den Kulissen dann jedes Mal, ist die Aufrechterhaltung der Zeile angezeigt wird, wird es erneut binden und neu zu zeichnen.

Andere Tipps

Sie müssen verstehen, dass ein Datagrid nicht für jede Zeile in der Tabelle eine Instanz Ihrer Kontrolle hat. Die Datenquelle Millionen von Zeilen haben könnte, während das Gitter als nicht mehr Instanzen der Kontrolle muß auf dem Bildschirm passen. Dies bedeutet, dass, wenn Sie blättern, zum Beispiel, ist es nicht Instanzen Ihrer Kontrolle offenbart vorher unsichtbar; es weist nur die aktuell sichtbaren Kontrollen, was Werte benötigt werden, um die korrekte Anzeige für die aktuelle Bildlaufposition zu machen.

Ich weiß nicht, ob es eine Abhilfe ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top