@@ -34,12 +34,12 @@ public virtual IList<TableViewFilterItem> GetFilterItems(TableViewColumn column,
34
34
foreach ( var item in collectionView )
35
35
{
36
36
var value = column . GetCellContent ( item ) ;
37
- filterValues . Add ( value ) ;
37
+ filterValues . Add ( IsBlank ( value ) ? null : value ) ;
38
38
}
39
39
40
- return filterValues . Select ( value =>
40
+ return [ .. filterValues . Select ( value =>
41
41
{
42
- value = string . IsNullOrWhiteSpace ( value ? . ToString ( ) ) ? TableViewLocalizedStrings . BlankFilterValue : value ;
42
+ value ??= TableViewLocalizedStrings . BlankFilterValue ;
43
43
var isSelected = ! column . IsFiltered || ! string . IsNullOrEmpty ( searchText ) ||
44
44
( column . IsFiltered && SelectedValues [ column ] . Contains ( value ) ) ;
45
45
@@ -48,13 +48,21 @@ public virtual IList<TableViewFilterItem> GetFilterItems(TableViewColumn column,
48
48
? new TableViewFilterItem ( isSelected , value )
49
49
: null ;
50
50
51
- } ) . OfType < TableViewFilterItem > ( )
52
- . ToList ( ) ;
51
+ } ) . OfType < TableViewFilterItem > ( ) ] ;
53
52
}
54
53
55
54
return [ ] ;
56
55
}
57
56
57
+ private static bool IsBlank ( object ? value )
58
+ {
59
+ return value == null ||
60
+ value == DBNull . Value ||
61
+ ( value is string str && string . IsNullOrWhiteSpace ( str ) ) ||
62
+ ( value is Guid guid && guid == Guid . Empty ) ;
63
+ }
64
+
65
+
58
66
public virtual void ApplyFilter ( TableViewColumn column )
59
67
{
60
68
if ( column is { TableView : { } } )
@@ -107,7 +115,7 @@ public virtual void ClearFilter(TableViewColumn? column)
107
115
public virtual bool Filter ( TableViewColumn column , object ? item )
108
116
{
109
117
var value = column . GetCellContent ( item ) ;
110
- value = string . IsNullOrWhiteSpace ( value ? . ToString ( ) ) ? TableViewLocalizedStrings . BlankFilterValue : value ;
118
+ value = IsBlank ( value ) ? TableViewLocalizedStrings . BlankFilterValue : value ! ;
111
119
return SelectedValues [ column ] . Contains ( value ) ;
112
120
}
113
121
0 commit comments