I want to convert my WPF application into an Avalonia application.I don’t konwhow to implement data filtering for the datagrid in avalonia.
This is the simplified WPF code。
public partial class DataGrid2ViewModel : ObservableObject
{
[ObservableProperty]private List<Models.Person> people = new List<Models.Person>();
[ObservableProperty]private ICollectionView collectionView;
[ObservableProperty]private string filterStr = "";
public DataGrid2ViewModel()
{
People = DataGridViewModel.Faker.Generate(10).ToList();
CollectionView = CollectionViewSource.GetDefaultView(People);
CollectionView.Filter = (item) =>
{
var model = item as Models.Person;
return model.FirstName.Contains(FilterStr) || model.LastName.Contains(FilterStr) || model.FullName.Contains(FilterStr);
};
}
}
<Grid>
<DockPanel LastChildFill="True">
<StackPanel DockPanel.Dock="Bottom"
Orientation="Horizontal"
Margin="5">
<hc:TextBox Text="{Binding FilterStr,UpdateSourceTrigger=PropertyChanged}"
hc:InfoElement.Placeholder="Filter By Name"
MinWidth="200"
Margin="5 0 0 0"
x:Name="FilterBox" />
</StackPanel>
<DataGrid ItemsSource="{Binding CollectionView}"
x:Name="PeopleDataGrid">
</DataGrid>
</DockPanel>
</Grid>