I have customized filtering control along with behavior,
Im trying to use SearchBox control in distinct values filter ive tried "EnableDistinctValuesFiltering="True""
even though i have search box it doest work,
example: in this screenshot ive type pending but the list still remains the same
here is my style
<Style TargetType="telerik:FilteringControl">
<Setter Property="Background" Value="White" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="telerik:FilteringControl">
<Border
Margin="{TemplateBinding Margin}"
Background="White"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="1"
TextBlock.FontSize="11"
TextBlock.FontWeight="Normal">
<Border
Margin="1"
Background="{TemplateBinding Background}"
BorderBrush="LightGray"
BorderThickness="1">
<StackPanel
MinWidth="200"
MaxWidth="350"
Margin="5"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<StackPanel x:Name="PART_DistinctFilter">
<Grid>
<telerik:RadButton
x:Name="PART_FilterCloseButton"
Width="15"
Height="15"
Margin="0,2"
Padding="1,-2,0,0"
HorizontalAlignment="Right"
Content="x"
FontSize="10"
FontWeight="Bold" />
</Grid>
<telerik:RadWatermarkTextBox
x:Name="PART_SearchBox"
Margin="0,0,0,4"
CurrentText="{Binding SearchText, Mode=TwoWay, TargetNullValue=''}"
WatermarkContent="{telerik:LocalizableResource Key=GridViewFilterDistinctValueSearch}">
<telerik:RadWatermarkTextBox.Style>
<Style BasedOn="{StaticResource {x:Type telerik:RadWatermarkTextBox}}" TargetType="{x:Type telerik:RadWatermarkTextBox}">
<Setter Property="Visibility" Value="Collapsed" />
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.FilterType, RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=Collapsed}" Value="CustomLOV">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</telerik:RadWatermarkTextBox.Style>
</telerik:RadWatermarkTextBox>
<ListBox
x:Name="PART_DistinctValuesList"
MaxHeight="250"
ItemsSource="{Binding DistinctValues}"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
SelectionMode="Multiple">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox
VerticalContentAlignment="Center"
Content="{Binding ConvertedValue}"
IsChecked="{Binding IsActive, Mode=TwoWay}">
<CheckBox.LayoutTransform>
<ScaleTransform ScaleX="0.9" ScaleY="0.9" />
</CheckBox.LayoutTransform>
</CheckBox>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.Style>
<Style BasedOn="{StaticResource {x:Type ListBox}}" TargetType="{x:Type ListBox}">
<Setter Property="Visibility" Value="Collapsed" />
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.FilterType, RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=Collapsed}" Value="CustomLOV">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
</ListBox>
</StackPanel>
<StackPanel Margin="0,2">
<TextBlock
Margin="0,2,0,0"
telerik:LocalizationManager.ResourceKey="GridViewFilterShowRowsWithValueThat"
Foreground="Black">
<TextBlock.Style>
<Style BasedOn="{StaticResource {x:Type TextBlock}}" TargetType="{x:Type TextBlock}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.FilterType, RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=Collapsed}" Value="CustomLOV">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<telerik:RadComboBox
x:Name="PART_Filter1ComboBox"
Margin="0,2"
ItemTemplate="{StaticResource ActionTemplate}"
ItemsSource="{Binding AvailableActions}"
SelectedItem="{Binding Filter1.Operator, Mode=TwoWay}">
<telerik:RadComboBox.Style>
<Style BasedOn="{StaticResource {x:Type telerik:RadComboBox}}" TargetType="{x:Type telerik:RadComboBox}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.FilterType, RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=Collapsed}" Value="Condition">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding DataContext.FilterType, RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=Collapsed}" Value="CustomLOV">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</telerik:RadComboBox.Style>
</telerik:RadComboBox>
<TextBox
x:Name="PART_Filter1TextBox"
Height="30"
Margin="0,2"
Padding="3,0"
VerticalContentAlignment="Center"
Text="{Binding Filter1.Value, Mode=TwoWay, Converter={StaticResource CommonValueConverter}, ConverterParameter=FilteringControl}">
<TextBox.Style>
<Style BasedOn="{StaticResource {x:Type TextBox}}" TargetType="TextBox">
<Setter Property="IsEnabled" Value="True" />
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=PART_Filter1ComboBox, Path=SelectedItem}" Value="IsNull">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
<DataTrigger Binding="{Binding DataContext.FilterType, RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=Collapsed}" Value="Condition">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
<DataTrigger Binding="{Binding DataContext.FilterType, RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=Collapsed}" Value="CustomLOV">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
<telerik:RadComboBox
x:Name="CustomComboBox"
Height="5"
Margin="0,2"
ItemsSource="{Binding DataContext.CustomFilterValues, RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
SelectedValue="{Binding Filter1.Value}"
Text="{Binding Filter1.Value, UpdateSourceTrigger=PropertyChanged}">
<telerik:RadComboBox.Style>
<Style BasedOn="{StaticResource {x:Type telerik:RadComboBox}}" TargetType="{x:Type telerik:RadComboBox}">
<Setter Property="Visibility" Value="Collapsed" />
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.FilterType, RelativeSource={RelativeSource AncestorType=UserControl, Mode=FindAncestor}, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, FallbackValue=Collapsed}" Value="Condition">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</telerik:RadComboBox.Style>
</telerik:RadComboBox>
<!--</StackPanel>-->
</StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button
x:Name="PART_ApplyFilterButton"
Grid.Column="0"
Margin="0,2,2,2"
telerik:LocalizationManager.ResourceKey="GridViewFilter" />
<Button
x:Name="PART_ClearFilterButton"
Grid.Column="1"
Margin="2,2,0,2"
telerik:LocalizationManager.ResourceKey="GridViewClearFilter" />
</Grid>
</StackPanel>
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Hi Dilip,
The style is missing some of the templates and I cannot build a runnable project with it. I have attached my test project. Could you update it so it reproduces the issue? This will allow me to properly investigate this.
In addition, can you specify the version that you are currently using? Please note that we have upgraded the template which can cause issues in some cases: Filters Work Only the First Time in RadGridView - Telerik UI for WPF
Thank you in advance for your patience and cooperation.
Hello Dimitar, Thanks, It works after I've changed the List Box itemsSource DistinctValues to FilteredDistinctValues but I've got another problem


in the list ive got 2 items
ive searched and chose pending
and again ive searched and chose readytobefinalized



if i click on filter then i can able to get only the last selected one (i.e ready to be finalized)
Result:
also, in search box I have clear command, but this is not working inside filtering control
<telerik:RadWatermarkTextBox
x:Name="PART_SearchBox"
Margin="0,0,0,4"
CurrentText="{Binding SearchText, Mode=TwoWay, TargetNullValue=''}"
WatermarkContent="{telerik:LocalizableResource Key=GridViewFilterDistinctValueSearch}">
<telerik:RadWatermarkTextBox.AdditionalContent>
<telerik:RadButton
Command="telerik:RadWatermarkTextBoxCommands.Clear"
CommandTarget="{Binding RelativeSource={RelativeSource AncestorType=telerik:RadWatermarkTextBox}}"
Content="X" />
</telerik:RadWatermarkTextBox.AdditionalContent>
</telerik:RadWatermarkTextBox>
Kindly assist on this.
Hi Dilip,
I want to kindly ask you to update the project from my previous post so it reproduces the described case. This way I can test and debug this and investigate why this is not working as expected. Without a runnable project, I can only guess why this not working since this is a specific custom implementation.
Thank you in advance for your patience and cooperation. I am looking forward to your reply.