mirror of
https://github.com/BlossomiShymae/Needlework.Net.git
synced 2025-12-06 18:20:47 +01:00
Add search for endpoint operations
This commit is contained in:
@@ -12,15 +12,31 @@ namespace Needlework.Net.Desktop.ViewModels
|
|||||||
public string Endpoint { get; }
|
public string Endpoint { get; }
|
||||||
public string Title => Endpoint;
|
public string Title => Endpoint;
|
||||||
|
|
||||||
|
|
||||||
[ObservableProperty] private IAvaloniaReadOnlyList<PathOperationViewModel> _pathOperations;
|
[ObservableProperty] private IAvaloniaReadOnlyList<PathOperationViewModel> _pathOperations;
|
||||||
[ObservableProperty] private PathOperationViewModel? _selectedPathOperation;
|
[ObservableProperty] private PathOperationViewModel? _selectedPathOperation;
|
||||||
|
|
||||||
|
[ObservableProperty] private string? _search;
|
||||||
|
[ObservableProperty] private IAvaloniaReadOnlyList<PathOperationViewModel> _filteredPathOperations;
|
||||||
|
|
||||||
public EndpointViewModel(string endpoint)
|
public EndpointViewModel(string endpoint)
|
||||||
{
|
{
|
||||||
Endpoint = endpoint;
|
Endpoint = endpoint;
|
||||||
|
|
||||||
var handler = WeakReferenceMessenger.Default.Send<DataRequestMessage>().Response;
|
var handler = WeakReferenceMessenger.Default.Send<DataRequestMessage>().Response;
|
||||||
PathOperations = new AvaloniaList<PathOperationViewModel>(handler.Plugins[endpoint].Select(x => new PathOperationViewModel(x)));
|
PathOperations = new AvaloniaList<PathOperationViewModel>(handler.Plugins[endpoint].Select(x => new PathOperationViewModel(x)));
|
||||||
|
FilteredPathOperations = new AvaloniaList<PathOperationViewModel>(PathOperations);
|
||||||
|
}
|
||||||
|
|
||||||
|
partial void OnSearchChanged(string? value)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(value))
|
||||||
|
{
|
||||||
|
FilteredPathOperations = new AvaloniaList<PathOperationViewModel>(PathOperations);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
FilteredPathOperations = new AvaloniaList<PathOperationViewModel>(PathOperations.Where(o => o.Path.ToLower().Contains(value.ToLower())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
|
xmlns:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
|
||||||
|
xmlns:materialIcons="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
|
||||||
xmlns:theme="clr-namespace:SukiUI.Theme;assembly=SukiUI"
|
xmlns:theme="clr-namespace:SukiUI.Theme;assembly=SukiUI"
|
||||||
xmlns:vm="using:Needlework.Net.Desktop.ViewModels"
|
xmlns:vm="using:Needlework.Net.Desktop.ViewModels"
|
||||||
xmlns:avalonEdit="https://github.com/avaloniaui/avaloniaedit"
|
xmlns:avalonEdit="https://github.com/avaloniaui/avaloniaedit"
|
||||||
@@ -12,15 +13,22 @@
|
|||||||
<Grid RowDefinitions="auto,*" ColumnDefinitions="3*,2,4*,2,4*">
|
<Grid RowDefinitions="auto,*" ColumnDefinitions="3*,2,4*,2,4*">
|
||||||
<Grid Grid.Row="0"
|
<Grid Grid.Row="0"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
Grid.RowSpan="2"
|
RowDefinitions="*"
|
||||||
RowDefinitions="auto,*"
|
ColumnDefinitions="auto,*">
|
||||||
|
<TextBox Text="{Binding Search}"
|
||||||
|
Grid.Row="0"
|
||||||
|
Grid.Column="0"
|
||||||
|
Grid.ColumnSpan="2"/>
|
||||||
|
</Grid>
|
||||||
|
<Grid Grid.Row="1"
|
||||||
|
Grid.Column="0"
|
||||||
|
RowDefinitions="*"
|
||||||
ColumnDefinitions="*">
|
ColumnDefinitions="*">
|
||||||
<ListBox ItemsSource="{Binding PathOperations}"
|
<ListBox ItemsSource="{Binding FilteredPathOperations}"
|
||||||
SelectedItem="{Binding SelectedPathOperation}"
|
SelectedItem="{Binding SelectedPathOperation}"
|
||||||
ScrollViewer.HorizontalScrollBarVisibility="Visible"
|
ScrollViewer.HorizontalScrollBarVisibility="Visible"
|
||||||
Margin="0 0 0 0"
|
Margin="0 0 0 0"
|
||||||
Grid.Row="0"
|
Grid.Row="1"
|
||||||
Grid.RowSpan="2"
|
|
||||||
Grid.Column="0">
|
Grid.Column="0">
|
||||||
<ListBox.ItemTemplate>
|
<ListBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
|
|||||||
Reference in New Issue
Block a user