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 };
}
}