If I have a cell with string values
"value1" "value2" "value3"
In my custom filter, how do I get these values?
I have made this custom one, but I have hard coded the values
I need to get them instead and create a list, how would I retrieve those values? I cant seem to find an example, the date one is not applicably here
Codebehind
"value1" "value2" "value3"
In my custom filter, how do I get these values?
I have made this custom one, but I have hard coded the values
CustomItems =
new
ObservableCollection<CheckBoxCustomFilterType>
{
new
CheckBoxCustomFilterType { Checked =
false
, Text =
"5016"
},
new
CheckBoxCustomFilterType { Checked =
true
, Text =
"25835"
}
};
I need to get them instead and create a list, how would I retrieve those values? I cant seem to find an example, the date one is not applicably here
<
UserControl
x:Class
=
"Systematic.KVK.InseminationPlan.UIL.Details.Windows.SemenBucket.CustomFilters.CheckBoxFilterControl"
xmlns:localization
=
"clr-namespace:Systematic.KVK.InseminationPlan.Localization"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
xmlns:customFilters
=
"clr-namespace:Systematic.KVK.InseminationPlan.UIL.Details.Windows.SemenBucket.CustomFilters"
mc:Ignorable
=
"d"
d:DesignHeight
=
"300"
d:DesignWidth
=
"300"
>
<
UserControl.Resources
>
<
ResourceDictionary
>
<
ResourceDictionary.MergedDictionaries
>
<
ResourceDictionary
Source
=
"/Systematic.KVK.WPFCommon;component/Style/ModernStyles.xaml"
/>
</
ResourceDictionary.MergedDictionaries
>
</
ResourceDictionary
>
</
UserControl.Resources
>
<
Border
x:Name
=
"LayoutRoot"
BorderThickness
=
"1"
BorderBrush
=
"{StaticResource DarkGreenHoverColor}"
Padding
=
"5"
Background
=
"{StaticResource White}"
>
<
Grid
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"120"
/>
<
ColumnDefinition
Width
=
"120"
/>
</
Grid.ColumnDefinitions
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
Height
=
"Auto"
/>
</
Grid.RowDefinitions
>
<
CheckBox
Margin
=
"3, 0, 0, 8"
Content
=
"{x:StaticExtension localization:SemenBucketTexts.SelectAll}"
Click
=
"SelectAll"
/>
<
telerik:RadGridView
Name
=
"CheckBoxGridView"
Grid.Column
=
"0"
Grid.ColumnSpan
=
"2"
Grid.Row
=
"1"
AutoGenerateColumns
=
"False"
CanUserDeleteRows
=
"False"
CanUserSelect
=
"False"
ShowColumnHeaders
=
"False"
CanUserReorderColumns
=
"False"
BorderThickness
=
"0"
HorizontalAlignment
=
"Left"
ItemsSource
=
"{Binding CustomItems}"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
DataMemberBinding
=
"{Binding Path=IsSelected}"
Header
=
""
EditTriggers
=
"CellClick"
IsReadOnly
=
"True"
>
<
telerik:GridViewDataColumn.HeaderCellStyle
>
<
Style
TargetType
=
"{x:Type telerik:GridViewHeaderCell}"
>
<
Setter
Property
=
"Template"
>
<
Setter.Value
>
<
ControlTemplate
>
<
CheckBox
Margin
=
"3, 0, 0, 8"
Command
=
"{Binding Path=DataContext.SelectedAllCommand, ElementName=ListTabViewName}"
IsChecked
=
"{Binding Path=DataContext.ShouldAllBeChecked, ElementName=ListTabViewName}"
HorizontalAlignment
=
"Left"
VerticalAlignment
=
"Center"
/>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
</
Style
>
</
telerik:GridViewDataColumn.HeaderCellStyle
>
<
telerik:GridViewDataColumn.CellTemplate
>
<
DataTemplate
>
<
CheckBox
IsChecked
=
"{Binding Path=Checked, Mode=TwoWay}"
Content
=
"{Binding Path=Text}"
HorizontalAlignment
=
"Left"
VerticalAlignment
=
"Center"
/>
</
DataTemplate
>
</
telerik:GridViewDataColumn.CellTemplate
>
</
telerik:GridViewDataColumn
>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
<
Button
Grid.Column
=
"0"
Grid.Row
=
"2"
Name
=
"FilterButton"
Content
=
"{x:StaticExtension localization:SemenBucketTexts.Filter}"
Click
=
"OnFilter"
Margin
=
"9"
/>
<
Button
Grid.Column
=
"1"
Grid.Row
=
"2"
Name
=
"ClearButton"
Content
=
"{x:StaticExtension localization:SemenBucketTexts.Clear}"
Click
=
"OnClear"
Margin
=
"9"
/>
</
Grid
>
</
Border
>
</
UserControl
>
using
System.Collections.Generic;
using
System.Collections.ObjectModel;
using
System.Windows;
using
System.Windows.Controls;
using
Telerik.Windows.Controls;
using
Telerik.Windows.Controls.GridView;
using
Telerik.Windows.Data;
namespace
Systematic.KVK.InseminationPlan.UIL.Details.Windows.SemenBucket.CustomFilters
{
/// <summary>
/// Interaction logic for CheckBoxFilterControl.xaml
/// </summary>
public
partial
class
CheckBoxFilterControl : IFilteringControl
{
public
ObservableCollection<CheckBoxCustomFilterType> CustomItems {
get
;
set
; }
private
GridViewBoundColumnBase column;
private
CompositeFilterDescriptor compositeFilter;
public
CheckBoxFilterControl()
{
InitializeComponent();
CustomItems =
new
ObservableCollection<CheckBoxCustomFilterType>
{
new
CheckBoxCustomFilterType { Checked =
false
, Text =
"5016"
},
new
CheckBoxCustomFilterType { Checked =
true
, Text =
"25835"
}
};
DataContext =
this
;
}
private
void
OnFilter(
object
sender, RoutedEventArgs e)
{
column.DataControl.FilterDescriptors.Clear();
compositeFilter =
new
CompositeFilterDescriptor();
compositeFilter.LogicalOperator = FilterCompositionLogicalOperator.Or;
string
dataMember = column.DataMemberBinding.Path.Path;
foreach
(var checkBoxCustomFilterType
in
CustomItems)
{
if
(checkBoxCustomFilterType.Checked)
{
var filter =
new
FilterDescriptor(dataMember, FilterOperator.IsEqualTo, checkBoxCustomFilterType.Text);
compositeFilter.FilterDescriptors.Add(filter);
}
}
if
(!column.DataControl.FilterDescriptors.Contains(compositeFilter))
{
column.DataControl.FilterDescriptors.Add(compositeFilter);
}
IsActive =
true
;
}
private
void
OnClear(
object
sender, RoutedEventArgs e)
{
column.DataControl.FilterDescriptors.Reset();
IsActive =
false
;
}
public
void
Prepare(Telerik.Windows.Controls.GridViewColumn column)
{
this
.column = column
as
GridViewBoundColumnBase;
if
(
this
.column ==
null
)
{
return
;
}
}
public
bool
IsActive {
get
;
set
; }
private
void
SelectAll(
object
sender, RoutedEventArgs e)
{
var checkbox = (sender
as
CheckBox);
if
(checkbox ==
null
|| checkbox.IsChecked ==
null
)
{
return
;
}
foreach
(var checkBoxCustomFilterType
in
CustomItems)
{
checkBoxCustomFilterType.Checked = checkbox.IsChecked.Value;
}
}
}
}