Фильтрация не работает для Telerik RadGridView Silverlight
Я использую telerik radgridview, чья коллекция элементов связана с источником данных, привязанным к пейджеру данных. У меня 20 страниц, когда я фильтрую по столбцу, он фильтрует только по текущей странице, как мне сделать так, чтобы он фильтровал всю коллекцию. ниже мой код
<telerikRad:RadGridView>
ItemsSource="{Binding ElementName=stddata, Path=Data}"
<telerikRad:RadGridView.Columns>
<telerik:GridViewDataColumn Header="stuName" DataMemberBinding="{Binding Name}" />
<telerik:GridViewDataColumn Header="StuId" DataMemberBinding="{Binding StudentId}" />
<telerikRad:RadGridView.Columns>
<telerikRad:RadGridView>
<sdk:DataPager Grid.Row="2"
x:Name="SSSS"
Source="{Binding Data, ElementName=stddata}"
IsTotalItemCountFixed="True" />
<riaControls:DomainDataSource Name="stddata"
AutoLoad="True"
PageSize="9"
QueryName="GetStudentsQuery"
DomainContext="{Binding DomainContext}">
</riaControls:DomainDataSource>
1 ответ
Решение
Telerik обеспечивает косвенное получение отфильтрованных элементов, применяя фильтр из RadGridView к коллекции, к которой привязан элемент управления.
Вот решение, которое позволяет получить отфильтрованный, отсортированный список элементов данных, используя текущий фильтр, и отсортировать настройки из элемента управления Telerik RadGridView.
using Telerik.Windows.Data;
.
.
.
IEnumerable<MyClass> itemsToDisplay { get; set; } //The RadGridView is bound to this property
public void DoSomethingWithFilteredAndSortedDisplayItems(RadGridView rgv)
{
IQueryable<MyClass> iqItems = itemsToDisplay.AsQueryable();
FilterDescriptorCollection filter = rgv.FilterDescriptors;
SortDescriptorCollection sort = rgv.SortDescriptors;
List<MyClass> fsItems = iqItems.Where(filter).Sort(sort).ToIList() as List<MyClass>;
if (fsItems != null && fsItems.Count > 0)
{
DoSomethingWithDisplayItems(fsItems);
}
}
public void DoSomethingWithDisplayItems(IEnumerable<MyClass> list)
{
... //Do something
}
Это для иллюстрации. В своем собственном коде я реализую фильтр и сортирую как метод расширения для элемента управления RadGridView.