This question is locked. New answers and comments are not allowed.
So I was following this page as well as this blog to do the filtering.
I created the "Person" class which is identical to the example the page shown.
It works when I create a collection of object, and the object has a CustomProperty (in this case property Person).
But if I create a Collection of Person and binds this Person collection to the RadGridView, create a DataColumn that's binding to itself:
This column will not be filterable.
Below is the example code:
Xaml:
Code:
I created the "Person" class which is identical to the example the page shown.
It works when I create a collection of object, and the object has a CustomProperty (in this case property Person).
But if I create a Collection of Person and binds this Person collection to the RadGridView, create a DataColumn that's binding to itself:
<telerik:GridViewDataColumn Header="Person" UniqueName="Person" DataMemberBinding="{Binding}" IsFilterable="True" /> This column will not be filterable.
Below is the example code:
Xaml:
<Grid x:Name="LayoutRoot" Background="White"> <telerik:RadGridView x:Name="MyRadGridView" IsFilteringAllowed="True"> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn Header="Person" UniqueName="Person" DataMemberBinding="{Binding}" IsFilterable="True" /> </telerik:RadGridView.Columns> </telerik:RadGridView></Grid>Code:
public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); ObservableCollection<MyCustomProperty> MyCustomPropertyCollection = new ObservableCollection<MyCustomProperty>() { new MyCustomProperty(), new MyCustomProperty() }; this.MyRadGridView.ItemsSource = MyCustomPropertyCollection; //Case 1) work, you can see MyPerson is filterable this.MyRadGridView.ItemsSource = MyCustomPropertyCollection[0].People; //Case 2) you can see the Person column is not filterable } } public partial class MyCustomProperty { public ObservableCollection<Person> People { get; set; } public Person MyPerson { get; set; } public MyCustomProperty() { People = new ObservableCollection<Person>() { new Person("Man A") { Age = 17 }, new Person("Man B") {Age = 18}, new Person("Man C") {Age = 18}, new Person("Female A") {Age = 10}, new Person("Female B") {Age = 19}, new Person("Female B") {Age = 20} }; MyPerson = new Person("Person A") { Age = 12 }; } }