Primary WinUI APIs:
Primary Avalonia APIs:
| WinUI idiom | Avalonia idiom |
|---|---|
| RefreshContainer + RefreshVisualizer | RefreshContainer + RefreshVisualizer |
| RefreshRequested event | RefreshRequested event |
| GetDeferral/Complete async refresh | GetDeferral/Complete async refresh |
| request refresh programmatically | RequestRefresh() |
WinUI XAML:
<RefreshContainer RefreshRequested="OnRefreshRequested">
<ListView ItemsSource="{x:Bind ViewModel.Items}" />
</RefreshContainer>
WinUI C#:
private async void OnRefreshRequested(RefreshContainer sender, RefreshRequestedEventArgs args)
{
var deferral = args.GetDeferral();
try
{
await ViewModel.ReloadAsync();
}
finally
{
deferral.Complete();
}
}
Avalonia XAML:
<RefreshContainer xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
RefreshRequested="OnRefreshRequested">
<ListBox ItemsSource="{Binding Items}" />
</RefreshContainer>
Avalonia C#:
private async void OnRefreshRequested(object? sender, RefreshRequestedEventArgs e)
{
var deferral = e.GetDeferral();
try
{
await ViewModel.ReloadAsync();
}
finally
{
deferral.Complete();
}
}
RequestRefresh() for deterministic test or retry flows.