WPF DataGrid 过滤 - CollectionViewSource 刷新 [英] WPF DataGrid Filtering - CollectionViewSource Refreshing

查看:45
本文介绍了WPF DataGrid 过滤 - CollectionViewSource 刷新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道如何在单击按钮时刷新 CollectionViewSource?

I want to know how I can refresh a CollectionViewSource when a button is clicked?

到目前为止我有

<Window.Resources>
    <CollectionViewSource x:Key="cvsCustomers"
                          Source="{Binding CustomerCollection}" 
                          Filter="CollectionViewSource_Filter" >
    </CollectionViewSource>
</Window.Resources>

创建 CollectionViewSource...

Which creates the CollectionViewSource...

<DataGrid HorizontalAlignment="Left" 
              Height="210" 
              Margin="47,153,0,0"
              VerticalAlignment="Top" Width="410"
              ItemsSource="{Binding Source={StaticResource cvsCustomers}}"
              CanUserAddRows="False"

将源绑定到我的 Datagrid

Which binds the source to my Datagrid

    private void CollectionViewSource_Filter(object sender, FilterEventArgs e)
    {
        Customer t = e.Item as Customer;
        if (t != null)
        // If filter is turned on, filter completed items.
        {
            if (t.Name.Contains(txtSearch.Text))
            {
                e.Accepted = true;
            }
            else
            {
                e.Accepted = false;
            }
        }
    }

我的视图中还有一个过滤器,

And a filter in my View,

一切似乎都在工作(项目被绑定到网格)但是我如何刷新视图或网格以便我可以再次触发上述功能以便网格被过滤?(真的是一个按钮点击)

Everything seems to be working (items are being bounded to the grid) but how do I refresh the view or grid so I can fire of the above function again so the grid does get filtered? (by a button click really)

谢谢

推荐答案

Call Refresh() on View> CollectionViewSource 的属性以使其刷新.

Call Refresh() on View property of CollectionViewSource to get it refreshed.

如果您想在按钮单击时执行此操作,则需要先从窗口资源访问 CollectionViewSource,然后在其视图上调用 refresh.

In case you want to do it on button click, you need to access CollectionViewSource from window resources first and then call refresh on its View.

((CollectionViewSource)this.Resources["cvsCustomers"]).View.Refresh();

这篇关于WPF DataGrid 过滤 - CollectionViewSource 刷新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆