feat: implement inner content interface.

This commit is contained in:
rabbitism
2025-09-16 19:20:02 +08:00
parent 7603206b3d
commit 0173ee7c9c
5 changed files with 76 additions and 30 deletions

View File

@@ -7,9 +7,11 @@
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:DataType="vm:MultiAutoCompleteBoxDemoViewModel"
x:Class="Ursa.Demo.Pages.MultiAutoCompleteBoxDemo">
<StackPanel Spacing="20">
<StackPanel Spacing="20" HorizontalAlignment="Left">
<TextBlock Text="Multi-AutoCompleteBox"/>
<u:MultiAutoCompleteBox ItemsSource="{Binding Items}"
MaxWidth="400"
InnerLeftContent="Controls"
SelectedItems="{Binding SelectedItems}"
ItemFilter="{Binding FilterPredicate }"
FilterMode="Custom">

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Avalonia.Controls;
using CommunityToolkit.Mvvm.ComponentModel;
@@ -82,12 +83,13 @@ public class MultiAutoCompleteBoxDemoViewModel: ObservableObject
{
if (text is null) return true;
if (data is not ControlData control) return false;
return control.MenuHeader.Contains(text )|| control.Chinese.Contains(text);
return control.MenuHeader.Contains(text, StringComparison.InvariantCultureIgnoreCase) ||
control.Chinese.Contains(text, StringComparison.InvariantCultureIgnoreCase);
}
}
public class ControlData
{
public string MenuHeader { get; set; }
public string Chinese { get; set; }
public required string MenuHeader { get; init; }
public required string Chinese { get; init; }
}