@@ -184,6 +184,47 @@ private CheckboxState VisibleColumnsCurrentSelectedResult
184184 ? CheckboxState . UnChecked
185185 : CheckboxState . Indeterminate ;
186186
187+ private string _visibleColumnsSearchKey = "" ;
188+
189+ /// <summary>
190+ /// 获得/设置 各列是否显示状态集合
191+ /// </summary>
192+ private List < ColumnVisibleItem > VisibleColumnsSearchResult
193+ => string . IsNullOrWhiteSpace ( _visibleColumnsSearchKey )
194+ ? _visibleColumns : _visibleColumnsSearchResult ;
195+
196+ /// <summary>
197+ /// 获得/设置 各列是否显示状态集合
198+ /// </summary>
199+ private List < ColumnVisibleItem > _visibleColumnsSearchResult = [ ] ;
200+
201+ private async Task SearchVisibleColumns ( string searchKey )
202+ {
203+ _visibleColumnsSearchKey = searchKey ;
204+ _visibleColumnsSearchResult = _visibleColumns
205+ . Where ( r =>
206+ string . IsNullOrWhiteSpace ( _visibleColumnsSearchKey ) ||
207+ ( r . DisplayName ?? r . Name ) . Contains ( _visibleColumnsSearchKey ) )
208+ . ToList ( ) ;
209+ await InvokeAsync ( StateHasChanged ) ;
210+ }
211+
212+ private async Task InverseSelected ( )
213+ {
214+ foreach ( var column in _visibleColumns )
215+ {
216+ column . Visible = ! column . Visible ;
217+ await OnToggleColumnVisible ( column . Name , column . Visible ) ;
218+ }
219+
220+ if ( VisibleColumnsCurrentSelectedResult == CheckboxState . UnChecked && _visibleColumns . Any ( ) )
221+ {
222+ await ShowToastAsync ( "提示" , "表格需要至少有一列显示,全不选时默认第一列维持显示状态" , ToastCategory . Warning ) ;
223+ _visibleColumns [ 0 ] . Visible = true ;
224+ }
225+ await InvokeAsync ( StateHasChanged ) ;
226+ }
227+
187228 private async Task OnToggleAllColumnsVisibleState ( CheckboxState state , string _ )
188229 {
189230 if ( state == CheckboxState . Checked )
@@ -194,7 +235,7 @@ private async Task OnToggleAllColumnsVisibleState(CheckboxState state, string _)
194235 }
195236 else if ( state == CheckboxState . UnChecked )
196237 {
197- await ShowToastAsync ( "提示" , "表格需要至少有一列显示,点击全不选时默认第一列维持显示状态 " , ToastCategory . Warning ) ;
238+ await ShowToastAsync ( "提示" , "表格需要至少有一列显示,全不选时默认第一列维持显示状态 " , ToastCategory . Warning ) ;
198239 foreach ( var column in _visibleColumns . Skip ( 1 ) . ToList ( ) )
199240 {
200241 column . Visible = false ;
0 commit comments