diff --git a/Source/LibationAvalonia/Dialogs/EditQuickFilters.axaml b/Source/LibationAvalonia/Dialogs/EditQuickFilters.axaml index 82ae89cc..68f41b76 100644 --- a/Source/LibationAvalonia/Dialogs/EditQuickFilters.axaml +++ b/Source/LibationAvalonia/Dialogs/EditQuickFilters.axaml @@ -24,9 +24,8 @@ CanUserSortColumns="False" AutoGenerateColumns="False" IsReadOnly="False" - ItemsSource="{Binding Filters}" + ItemsSource="{CompiledBinding Filters}" GridLinesVisibility="All"> - @@ -38,7 +37,7 @@ VerticalAlignment="Stretch" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" - IsEnabled="{Binding !IsDefault}" + IsEnabled="{CompiledBinding !IsDefault}" Click="DeleteButton_Clicked" /> @@ -48,14 +47,13 @@ - @@ -67,16 +65,19 @@ VerticalAlignment="Stretch" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" - IsEnabled="{Binding !IsDefault}" - ToolTip.Tip="Export account authorization to audible-cli" - Click="MoveUpButton_Clicked" /> + Click="MoveUpButton_Clicked"> + + + + + + + - - - + @@ -86,15 +87,18 @@ VerticalAlignment="Stretch" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" - IsEnabled="{Binding !IsDefault}" - ToolTip.Tip="Export account authorization to audible-cli" - Click="MoveDownButton_Clicked" /> + Click="MoveDownButton_Clicked"> + + + + + + + - - Filters { get; } = new(); + public AvaloniaList Filters { get; } = new(); public class Filter : ViewModels.ViewModelBase { @@ -17,11 +17,8 @@ namespace LibationAvalonia.Dialogs public string Name { get => _name; - set - { - this.RaiseAndSetIfChanged(ref _name, value); - } - } + set => this.RaiseAndSetIfChanged(ref _name, value); + } private string _filterString; public string FilterString @@ -35,6 +32,10 @@ namespace LibationAvalonia.Dialogs } } public bool IsDefault { get; private set; } = true; + private bool _isTop; + private bool _isBottom; + public bool IsTop { get => _isTop; set => this.RaiseAndSetIfChanged(ref _isTop, value); } + public bool IsBottom { get => _isBottom; set => this.RaiseAndSetIfChanged(ref _isBottom, value); } public QuickFilters.NamedFilter AsNamedFilter() => new(FilterString, Name); @@ -44,12 +45,12 @@ namespace LibationAvalonia.Dialogs InitializeComponent(); if (Design.IsDesignMode) { - Filters = new ObservableCollection([ - new Filter { Name = "Filter 1", FilterString = "[filter1 string]" }, + Filters = [ + new Filter { Name = "Filter 1", FilterString = "[filter1 string]", IsTop = true }, new Filter { Name = "Filter 2", FilterString = "[filter2 string]" }, new Filter { Name = "Filter 3", FilterString = "[filter3 string]" }, - new Filter { Name = "Filter 4", FilterString = "[filter4 string]" } - ]); + new Filter { Name = "Filter 4", FilterString = "[filter4 string]", IsBottom = true }, + new Filter()]; DataContext = this; return; } @@ -65,6 +66,8 @@ namespace LibationAvalonia.Dialogs ControlToFocusOnShow = this.FindControl