2016-08-24 4 views
0

Meine Anwendung ändert den Inhalt einer ListBox basierend auf einer Benutzerauswahl an anderer Stelle. Letztendlich wird diese Liste ebenfalls gefiltert. Ich möchte CollectionViewSource verwenden, um die Elemente in der ListBox zu verwalten. Ich füge Objekte zu einer ObservableCollection hinzu, sehe aber keine Elemente in der ListBox.So aktualisieren Sie ListBox mit CollectionViewSource

Hier ist der XAML:

<Window.Resources> 
    <ResourceDictionary> 
     ... 
     <CollectionViewSource x:Key="DataFileView" Source="DataFilesCollection"/> 
    </ResourceDictionary> 
</Window.Resources> 

... 

<ListBox x:Name="FileList" ItemsSource="{Binding Source={StaticResource DataFileView}}" 
     Grid.Column="2" SelectionMode="Single" SelectionChanged="DataFile_Select"> 
    <ListBox.ItemTemplate> 
     <DataTemplate DataType="{x:Type self:ExploreDataItem}"> 
      <TextBlock Text="{Binding DisplayText}" /> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Die DataFilesCollection ein ObservableCollection<ExploreDataItem> ist.

Antwort

0

Ich glaube, Sie haben vergessen, Binding zu der Quelle der CollectionViewSource hinzuzufügen. Ich finde keinen anderen Fehler in Ihrem Code. Alles scheint richtig zu sein. Hoffe, dein DataFilesCollection ist auch nicht leer.

Siehe unten korrigierten Code:

<CollectionViewSource x:Name="DataFileView" Source="{Binding DataFilesCollection}" /> 
+0

Leider noch keine Würfel. Die Sammlung enthält 100 Elemente. Irgendwelche anderen Vorschläge? – tyson

+0

Wenn Sie den gesamten Code anzeigen können, der testbar ist, dann können Sie überprüfen. – ViVi

+0

Das Problem war, dass ich DataContext nicht richtig gesetzt habe. Danke für Ihre Hilfe. – tyson

Verwandte Themen