2010-12-27 13 views
0

ich ein XAML-Element haben, die auf eine Eigenschaft des DataContext bindet:Silverlight: Die Bindung wird mehrmals aufgerufen

<ListBox ItemsSource="SectionViewModels" /> 

Dieses bindet an eine Eigenschaft:

public IList<SectionViewModel> SectionViewModels 
    { 
     get 
     { 
      // ... 
     } 
    } 

Wenn die Seite geladen wird, Diese Eigenschaft wird mehrmals aufgerufen, obwohl ich keine PropertyChanged Ereignisse ausgelöst habe. Ist das zu erwarten, oder heißt das, ich habe einen Fehler?

(Ich bin eine Silverlight-Anwendung auf Windows Phone Aufbau 7.)

Antwort

0

Ohne in die Einzelheiten Ihres Problems zu bekommen, sollten Sie eine ObservableCollection für diese Art der Sache verwenden - wenn Sie Bindung direkt an ein Sammlung in Silverlight oder WP7 eliminiert eine ObservableCollection 99,9% des Unsinns, mit dem Sie selbst versuchen, eine Cross-Thread-Bindung zu erstellen.

+0

Der Grund, warum ich keine 'ObservableCollection' verwende, liegt darin, dass die' Section'-Objekte in einem sind und die 'SectionViewModels' eine Abfrage für diese Sammlung sind. Indem ich ein Aufzählungszeichen anstelle einer Sammlung verwende, muss ich mir keine Sorgen machen, dass die beiden synchron bleiben. –

Verwandte Themen