如何使用CollectionViewSource更新ListBox

时间:2016-08-24 23:03:01

标签: c# wpf data-binding

我的应用程序根据其他地方的用户选择更改了ListBox的内容。最终,此列表也将被过滤。我想使用CollectionViewSource来帮助管理ListBox中的项目。我将项目添加到ObservableCollection,但没有看到ListBox中的任何项目。

这是XAML:

{module_photogallery id="12345" resultsPerPage="6" collection="test2016" template="" }
<div class="container">
    <div class="row">
        {% for item in test2016.items %}
        <div class="col-md-3 col-sm-3 col-xs-6">
            <a onclick="myLightbox.start(this);return false;" rel="lightbox[photo2015]" href="{{item.link}}">
                <img src="{{item.link}}?Action=thumbnail&Width=250&Height=150&algorithm=fill_proportional">
            </a>
        </div>
        {% endfor %}

        <a href="{{test2016.pagination.previousPageUrl}}">Prev</a> <a href="{{test2016.pagination.nextPageUrl}}">Next</a>

    </div>
</div>

<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> DataFilesCollection

1 个答案:

答案 0 :(得分:0)

我想您忘了将Binding添加到CollectionViewSource的来源。我的代码中没有发现任何其他错误。一切似乎都是正确的。希望你的DataFilesCollection也不是空的。

见以下更正的代码:

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