2010-12-06 5 views
0

Ich habe eine Designfrage: In einer Pivot-Ansicht (drei "Seiten") habe ich viele Bindungen. Nun, ungefähr 12 Elemente in jeder Pivot-Ansicht (TextBox, Map ...).Silverlight Bindung in Pivot Control

Ich erkannte, dass diese Bindung die Last meiner Sicht verlangsamte. Aber die Bindung auf der ersten "Seite" meines Pivots ist die einzige, die geladen werden muss. Ich kann einen Fortschrittsanzeiger setzen und einen Thread oder etwas meine anderen Daten laden (in der Tat werden die verbundenen Daten nur nach einem HTTPWebRequest gesetzt).

Wie kann ich das zu meiner Anwendung sagen? Wie „onLoadPageX: bind Artikel“

Vielen Dank, ich weiß nicht, ob ich klar bin

Antwort

0

Ihre Frage ist sehr vage, aber es gibt viele Möglichkeiten, um einen Ladezustand zeigt, defering Bindung und mit vielen Kontrollen in einem Dreh:

Wenn Sie etwas tun müssen, um die Zeit in Anspruch nehmen kann, dann tut es aus der UI-Thread

Wenn Sie etwas tun, was Zeit braucht, sollten Sie dem Benutzer eine Meldung anzeigen, dass etwas passiert. Dies könnte eine Nachricht oder eine Animation sein, je nach dem Zeitraum und dem Rest der Anwendung.

Wenn Ihr Inhalt stark von Daten abhängt, die aus dem Internet geladen werden, müssen Sie beim Auslesen der Daten entsprechende Zeitüberschreitungen haben. Verfügen Sie auch über nützliche Nachrichten, wenn keine Datenverbindung verfügbar ist.

Wenn Ihre Benutzeroberfläche stark von extern geladenen Details abhängig ist, können Sie die Steuerelemente der Benutzeroberfläche hinzufügen, sobald Sie wissen, was Sie anzeigen müssen. Wenn die Benutzeroberfläche immer dieselben Steuerelemente, aber unterschiedliche Inhalte enthält, können Sie eine Datenbindung an Objekte mit Platzhalterinhalten in Betracht ziehen, die aktualisiert werden, wenn die relevanten Informationen vom Webdienst heruntergeladen werden.

Wenn Sie viele Elemente in Ihrem Pivot haben, sollten Sie das Laden einzelner Elemente in Betracht ziehen, damit Sie sie nicht laden, bevor sie benötigt werden. Laden Sie nur die Daten auf die Elemente neben dem angezeigten. Auf diese Weise erscheinen sie dem Benutzer vorinstalliert, erleichtern jedoch die Auswirkungen auf das System.

1

sollten Sie in der Lage sein, eine RoutedEventHandler für die Loaded Ereignis jedes PivotItem hinzuzufügen. Dieses Ereignis wird ausgelöst, wenn eine bestimmte PivotItem-Seite geladen wird. Es gibt auch ein entsprechendes Ereignis Unloaded für das Entladen der Seite, falls Sie Ressourcen freigeben müssen.

+0

ok, also sollte ich programmatisch die UI-Elemente in meinem Loaded Callback hinzufügen? –

+0

Sie könnten sie programmatisch hinzufügen; Es hängt wirklich von den UI-Elementen ab, die Sie auf dieser Seite haben. Wenn Sie beispielsweise nur eine ListBox haben, die in XAML deklariert werden kann, die Sichtbarkeit jedoch deaktiviert ist, laden Sie das gebundene Ressourcenelement mit den Daten und machen Sie das Element dann sichtbar. – Praetorian

Verwandte Themen