1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using Avalonia;
- using Avalonia.Controls;
- using Avalonia.Data;
- using Avalonia.Markup.Xaml;
- using System.Windows.Input;
- namespace InABox.Avalonia.Components;
- public partial class SearchBar : UserControl
- {
- public static readonly StyledProperty<string> PlaceholderTextProperty =
- AvaloniaProperty.Register<SearchBar, string>(nameof(PlaceholderText), "Search...");
- public string PlaceholderText
- {
- get => GetValue(PlaceholderTextProperty);
- set => SetValue(PlaceholderTextProperty, value);
- }
- public static readonly StyledProperty<ICommand?> CommandProperty =
- AvaloniaProperty.Register<SearchBar, ICommand?>(nameof(Command), null);
-
- public ICommand? Command
- {
- get => GetValue(CommandProperty);
- set => SetValue(CommandProperty, value);
- }
- public static readonly StyledProperty<string> TextProperty =
- AvaloniaProperty.Register<SearchBar, string>(nameof(Text), "", defaultBindingMode: BindingMode.TwoWay);
- public string Text
- {
- get => GetValue(TextProperty);
- set => SetValue(TextProperty, value);
- }
- public static readonly StyledProperty<bool> SearchOnChangedProperty =
- AvaloniaProperty.Register<SearchBar, bool>(nameof(SearchOnChanged), true);
- public bool SearchOnChanged
- {
- get => GetValue(SearchOnChangedProperty);
- set => SetValue(SearchOnChangedProperty, value);
- }
- public SearchBar()
- {
- InitializeComponent();
- }
- private void TextBox_TextChanged(object? sender, TextChangedEventArgs e)
- {
- if (SearchOnChanged && Command is not null && Command.CanExecute(null))
- {
- Command.Execute(null);
- }
- }
- }
|