@@ -191,7 +191,7 @@ public bool IsOpen
191191 }
192192 }
193193
194- private int ClusterResultsCount => DropdownResults == null ? 0 : DropdownResults . Count ( ) ;
194+ private int ClusterResultsCount => FilteredView == null ? 0 : FilteredView . Cast < object > ( ) . ToList ( ) . Count ;
195195
196196 private int selectedIndex = 0 ;
197197
@@ -231,6 +231,8 @@ public string SearchInput
231231 {
232232 FilteredView . Refresh ( ) ;
233233 }
234+
235+ RaisePropertyChanged ( nameof ( SearchInput ) ) ;
234236 }
235237 }
236238
@@ -245,30 +247,19 @@ public int SelectedIndex
245247 }
246248 set
247249 {
248- /*don't try to add a node if the index is out of range or a selection is not made yet (-1)
249- an index of -1 occurs when using the switch to change between modes.*/
250- if ( selectedIndex != value && value >= 0 && selectedIndex != - 1 )
250+ if ( selectedIndex != value && value >= - 1 )
251251 {
252- ReAddNode ( value ) ;
253- }
254- selectedIndex = value ;
255- RaisePropertyChanged ( nameof ( SelectedIndex ) ) ;
256- RaisePropertyChanged ( nameof ( NthofTotal ) ) ;
257- RaisePropertyChanged ( nameof ( PreviousSource ) ) ;
258- RaisePropertyChanged ( nameof ( NextSource ) ) ;
259- }
260- }
252+ selectedIndex = value ;
253+ if ( selectedIndex != - 1 )
254+ {
255+ AddCluster ( selectedIndex ) ;
256+ }
261257
262- private void ReAddNode ( int index )
263- {
264- if ( FullResults == null )
265- {
266- return ;
267- }
268- var results = QualifiedResults . ToList ( ) ;
269- if ( index >= 0 && index < results . Count )
270- {
271- AddCluster ( results [ index ] ) ;
258+ RaisePropertyChanged ( nameof ( SelectedIndex ) ) ;
259+ RaisePropertyChanged ( nameof ( NthofTotal ) ) ;
260+ RaisePropertyChanged ( nameof ( PreviousSource ) ) ;
261+ RaisePropertyChanged ( nameof ( NextSource ) ) ;
262+ }
272263 }
273264 }
274265
@@ -426,6 +417,7 @@ internal void ResetAutoCompleteSearchViewState()
426417 FilteredResults = new List < NodeSearchElementViewModel > ( ) ;
427418 FilteredHighConfidenceResults = new List < NodeSearchElementViewModel > ( ) ;
428419 FilteredLowConfidenceResults = new List < NodeSearchElementViewModel > ( ) ;
420+ SearchInput = string . Empty ;
429421 }
430422
431423 internal MLNodeAutoCompletionRequest GenerateRequestForMLAutocomplete ( )
@@ -796,6 +788,19 @@ internal void DeleteTransientNodes()
796788 }
797789 }
798790
791+
792+ internal void AddCluster ( int filterredIndex )
793+ {
794+ var currentFilter = FilteredView . Cast < DNADropdownViewModel > ( ) . ToList ( ) ;
795+ var currentItem = filterredIndex >= 0 && filterredIndex < currentFilter . Count ? currentFilter [ filterredIndex ] : null ;
796+
797+ var realCluster = QualifiedResults . FirstOrDefault ( x => x . Description . Equals ( currentItem . Description ) ) ;
798+ if ( realCluster != null )
799+ {
800+ AddCluster ( realCluster ) ;
801+ }
802+ }
803+
799804 // Add Cluster from server result into the workspace
800805 internal void AddCluster ( ClusterResultItem clusterResultItem )
801806 {
@@ -1040,8 +1045,6 @@ internal void PopulateAutoComplete()
10401045 if ( comboboxResults . Any ( ) )
10411046 {
10421047 SelectedIndex = 0 ;
1043- var ClusterResultItem = QualifiedResults . First ( ) ;
1044- AddCluster ( ClusterResultItem ) ;
10451048 }
10461049
10471050 } ) ;
0 commit comments