@@ -37,26 +37,29 @@ public async Task<IEnumerable<TKey>> SearchAsync(string search)
3737 }
3838
3939 /// <summary>
40- /// Sets the currently selected item.
40+ /// Gets or sets the currently selected item.
4141 /// </summary>
42- /// <param name="item">Selected item.</param>
43- public void SetCurrentItem ( TItem ? item )
42+ /// <param name="i">Index,</param>
43+ /// <returns>Item type.</returns>
44+ public TItem ? this [ TKey ? key ]
4445 {
45- if ( EqualityComparer < TItem > . Default . Equals ( item , default ) )
46+ private get
4647 {
47- _currentItems = new List < TItem > ( ) ;
48- return ;
49- }
50-
51- _currentItems = new List < TItem > { item ! } ;
52- }
48+ if ( _currentItems == null )
49+ return default ;
5350
54- private TItem ? GetSelectedItem ( TKey ? key )
55- {
56- if ( _currentItems == null )
57- return default ;
51+ return _currentItems . SingleOrDefault ( i => EqualityComparer < TKey > . Default . Equals ( key , _keySelector ( i ) ) ) ;
52+ }
53+ set
54+ {
55+ if ( EqualityComparer < TItem > . Default . Equals ( value , default ) )
56+ {
57+ _currentItems = new List < TItem > ( ) ;
58+ return ;
59+ }
5860
59- return _currentItems . SingleOrDefault ( i => EqualityComparer < TKey > . Default . Equals ( key , _keySelector ( i ) ) ) ;
61+ _currentItems = new List < TItem > { value ! } ;
62+ }
6063 }
6164
6265 /// <summary>
@@ -69,7 +72,7 @@ public void SetCurrentItem(TItem? item)
6972 if ( EqualityComparer < TKey > . Default . Equals ( key , default ) )
7073 return null ;
7174
72- var selectedItem = GetSelectedItem ( key ) ;
75+ var selectedItem = this [ key ] ;
7376
7477 return ! EqualityComparer < TItem > . Default . Equals ( selectedItem , default ) ? _nameSelector ( selectedItem ! ) : null ;
7578 }
0 commit comments