mirror of
https://github.com/claunia/marechai.git
synced 2025-12-16 19:14:25 +00:00
59 lines
1.9 KiB
C#
59 lines
1.9 KiB
C#
using Marechai.App.Presentation.ViewModels;
|
|
using Microsoft.UI.Xaml;
|
|
using Microsoft.UI.Xaml.Controls;
|
|
using Microsoft.UI.Xaml.Navigation;
|
|
|
|
namespace Marechai.App.Presentation.Views;
|
|
|
|
public sealed partial class CompaniesPage : Page
|
|
{
|
|
public CompaniesPage()
|
|
{
|
|
InitializeComponent();
|
|
DataContextChanged += CompaniesPage_DataContextChanged;
|
|
Loaded += CompaniesPage_Loaded;
|
|
}
|
|
|
|
private void CompaniesPage_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
if(DataContext is not CompaniesViewModel viewModel) return;
|
|
|
|
// Trigger data loading
|
|
_ = viewModel.LoadData.ExecuteAsync(null);
|
|
}
|
|
|
|
private void CompaniesPage_DataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args)
|
|
{
|
|
if(args.NewValue is CompaniesViewModel viewModel)
|
|
{
|
|
// Trigger data loading when data context changes
|
|
_ = viewModel.LoadData.ExecuteAsync(null);
|
|
}
|
|
}
|
|
|
|
protected override void OnNavigatedTo(NavigationEventArgs e)
|
|
{
|
|
base.OnNavigatedTo(e);
|
|
|
|
if(DataContext is CompaniesViewModel viewModel)
|
|
{
|
|
// Trigger data loading when navigating to the page
|
|
_ = viewModel.LoadData.ExecuteAsync(null);
|
|
}
|
|
}
|
|
|
|
private void OnSearchTextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
|
|
{
|
|
if(args.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
|
|
{
|
|
// The two-way binding will automatically update SearchQuery in ViewModel,
|
|
// which will trigger OnSearchQueryChanged and filter the list
|
|
}
|
|
}
|
|
|
|
private void OnSearchQuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
|
|
{
|
|
// The two-way binding will automatically update SearchQuery in ViewModel,
|
|
// which will trigger OnSearchQueryChanged and filter the list
|
|
}
|
|
} |