- UserControl with UserAccessAuditViewModel constructor injection, sets DataContext - Wires SearchResults.CollectionChanged to show/hide autocomplete ListBox - OnSearchResultClicked handler invokes AddUserCommand for mouse-based user selection
42 lines
1.4 KiB
C#
42 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Handles click on a search result item in the autocomplete list.
|
|
/// Invokes AddUserCommand on the ViewModel and hides the list.
|
|
/// </summary>
|
|
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
|
|
}
|
|
}
|
|
}
|