@@ -38,6 +38,7 @@ private static void OnTargetChanged(DependencyObject d, DependencyPropertyChange
3838 return ;
3939 }
4040
41+ button . IsEnabled = GetIsEnabled ( newSelector ) ;
4142 button . Click += OnButtonOnClick ;
4243 newSelector . SelectionChanged += OnSelectorSelectionChanged ;
4344
@@ -88,40 +89,47 @@ private static void OnSelectorSelectionChanged(object sender, SelectionChangedEv
8889
8990 private static void SelectAll ( Selector selector )
9091 {
91- if ( selector is MultiSelector multiSelector )
92- {
93- multiSelector . SelectAll ( ) ;
94- }
95- else if ( selector is ListBox listBox )
96- {
97- listBox . SelectAll ( ) ;
92+ switch ( selector )
93+ {
94+ case MultiSelector multiSelector :
95+ multiSelector . SelectAll ( ) ;
96+ break ;
97+ case ListBox listBox :
98+ listBox . SelectAll ( ) ;
99+ break ;
98100 }
99101 }
100102
101103 private static void UnselectAll ( Selector selector )
102104 {
103- if ( selector is MultiSelector multiSelector )
104- {
105- multiSelector . UnselectAll ( ) ;
106- }
107- else if ( selector is ListBox listBox )
108- {
109- listBox . UnselectAll ( ) ;
105+ switch ( selector )
106+ {
107+ case MultiSelector multiSelector :
108+ multiSelector . UnselectAll ( ) ;
109+ break ;
110+ case ListBox listBox :
111+ listBox . UnselectAll ( ) ;
112+ break ;
110113 }
111114 }
112115
113116 private static int GetSelectedItemsCount ( Selector selector )
114117 {
115- if ( selector is MultiSelector multiSelector )
118+ return selector switch
116119 {
117- return multiSelector . SelectedItems . Count ;
118- }
120+ MultiSelector multiSelector => multiSelector . SelectedItems . Count ,
121+ ListBox listBox => listBox . SelectedItems . Count ,
122+ _ => 0
123+ } ;
124+ }
119125
120- if ( selector is ListBox listBox )
126+ private static bool GetIsEnabled ( Selector selector )
127+ {
128+ return selector switch
121129 {
122- return listBox . SelectedItems . Count ;
123- }
124-
125- return 0 ;
130+ DataGrid dataGrid => dataGrid . SelectionMode is not DataGridSelectionMode . Single ,
131+ ListBox listBox => listBox . SelectionMode is not SelectionMode . Single ,
132+ _ => false
133+ } ;
126134 }
127135}
0 commit comments