using System.Collections.Specialized; using System.Windows; using System.Windows.Controls; using SharepointToolbox.ViewModels.Tabs; namespace SharepointToolbox.Views.Tabs; public partial class UserAccessAuditView : UserControl { public UserAccessAuditView(UserAccessAuditViewModel viewModel) { InitializeComponent(); DataContext = viewModel; // Show/hide the autocomplete list as SearchResults changes viewModel.SearchResults.CollectionChanged += OnSearchResultsChanged; } private void OnSearchResultsChanged(object? sender, NotifyCollectionChangedEventArgs e) { if (DataContext is UserAccessAuditViewModel vm) { SearchResultsList.Visibility = vm.SearchResults.Count > 0 ? Visibility.Visible : Visibility.Collapsed; } } /// /// Handles click on a search result item in the autocomplete list. /// Invokes AddUserCommand on the ViewModel and hides the list. /// private void OnSearchResultClicked(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (sender is ListBoxItem item && DataContext is UserAccessAuditViewModel vm) { vm.AddUserCommand.Execute(item.DataContext); // AddUserCommand clears SearchResults so CollectionChanged will hide the list } } }