New to Telerik UI for WPF? Download free 30-day trial

Close Filtering Popup on Pressing Filter Button

In order to close filtering Popup on pressing the fitler button, you need to override the OnApplyFilter method of FilteringControl.

A demo on how to achieve the desired behavior is available in our SDK Samples Browser. The demo is labeled "Close Filtering Popup" and can also be found on GitHub - CloseFilteringPopupFilterButton.

Example 1: Overriding OnApplyFilter method

public class MyFilteringControl : FilteringControl 
{ 
    public MyFilteringControl(Telerik.Windows.Controls.GridViewColumn column) : base(column) 
    {          
 
    }         
 
    protected override void OnApplyFilter() 
    { 
        base.OnApplyFilter(); 
 
        var popup = this.ParentOfType<Popup>(); 
        if (popup != null) 
        { 
            popup.IsOpen = false; 
        }            
    } 
} 
Public Class MyFilteringControl 
    Inherits FilteringControl 
    Public Sub New(column As Telerik.Windows.Controls.GridViewColumn) 
 
        MyBase.New(column) 
    End Sub 
 
    Protected Overrides Sub OnApplyFilter() 
        MyBase.OnApplyFilter() 
 
        Dim popup = Me.ParentOfType(Of Popup)() 
        If popup IsNot Nothing Then 
            popup.IsOpen = False 
        End If 
    End Sub 
End Class 

Then you can apply it to a desired column like so:

Example 2: Apply the Custom Filter to the column

this.radGridView.Columns["Name"].FilteringControl = new MyFilteringControl(this.radGridView.Columns["Name"]); 
Me.radGridView.Columns("Name").FilteringControl = New MyFilteringControl(Me.radGridView.Columns("Name")) 

In case you are using NoXaml Binaries and Implicit Styles, you should additionally apply a template. Please refer to the Styling custom controls section. The Style you should apply in XAML then is:

Example 3: Style targetting the custom control

<Style TargetType="my:MyFilteringControl" BasedOn="{StaticResource FilteringControlStyle}"/> 
In this article