Hi,
I have defined custom filtering control like this. It's a custom control.
public
class
SalusGridViewCustomFilteringControl : FilteringControl
{
private
GridViewDataControl _parentGrid;
private
GridViewBoundColumnBase _parentColumn;
private
readonly
List<FilterDescriptor> _filterDescriptors =
new
List<FilterDescriptor>();
static
SalusGridViewCustomFilteringControl()
{
DefaultStyleKeyProperty.OverrideMetadata(
typeof
(SalusGridViewCustomFilteringControl),
new
FrameworkPropertyMetadata(
typeof
(SalusGridViewCustomFilteringControl)));
}
...
public
static
readonly
DependencyProperty ItemsProperty = DependencyProperty.Register(
"Items"
,
typeof
(ObservableCollection<AgendaActivityType>),
typeof
(SalusGridViewCustomFilteringControl),
new
PropertyMetadata(
default
(ObservableCollection<AgendaActivityType>)));
public
ObservableCollection<AgendaActivityType> Items
{
get
{
return
(ObservableCollection<AgendaActivityType>) GetValue(ItemsProperty); }
set
{ SetValue(ItemsProperty, value); }
}
...
But when I use it as filtering control for column like this:
<
telerik:GridViewDataColumn.FilteringControl
>
<
controls:SalusGridViewCustomFilteringControl
Items
=
"{Binding AgendaItemTypes}"
ItemContainerStyle
=
"{StaticResource AgendaFilteringItemStyle}"
/>
</
telerik:GridViewDataColumn.FilteringControl
>
Binding to AgendaItemTypes not works. Ok it is because telerik FilteringControl class, which is base class for my custom filtering control, sets DataContext to FilteringViewModel. FilteringViewModel does not contains property AgendaItemTypes.
But when I change binding of Items property to element which has right datacontext i.e. like this:
<
telerik:GridViewDataColumn.FilteringControl
>
<
controls:SalusGridViewCustomFilteringControl
Items
=
"{Binding ElementName=AgendaModule_AgendaPlannedActivityView_GridView, Path=DataContext.AgendaItemTypes}"
ItemContainerStyle
=
"{StaticResource AgendaFilteringItemStyle}"
/>
</
telerik:GridViewDataColumn.FilteringControl
>
Binding still not work. Can someone give me advice please?