Telerik UI for Windows Phone by Progress

 The OnDemandAutomatic virtualization mode is a mode in which data items are automatically requested when the end-user approaches the end of the scrollable list. A possibility for displaying a specialized visual container indicating that a data request is being processed is available by using the ItemLoadingContent and ItemLoadingTemplate properties exposed by RadDataBoundListBox. A possible way of defining ItemLoadingTemplate is shown below:

CopyXAML
<telerikPrimitives:RadDataBoundListBox.ItemLoadingTemplate>
    <DataTemplate>
        <Grid MinHeight="14">
            <Grid.Triggers>
                <EventTrigger>
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="ellipseTranslate" RepeatBehavior="Forever">
                                <DoubleAnimation.EasingFunction>
                                    <SineEase EasingMode="EaseInOut" />
                                </DoubleAnimation.EasingFunction>
                            </DoubleAnimation>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Grid.Triggers>
            <Ellipse VerticalAlignment="Center" HorizontalAlignment="Left" Width="6" Height="6" Grid.Column="1" Fill="{StaticResource PhoneAccentBrush}">
                <Ellipse.RenderTransform>
                    <TranslateTransform x:Name="ellipseTranslate" X="0" />
                </Ellipse.RenderTransform>
            </Ellipse>
        </Grid>
    </DataTemplate>
</telerikPrimitives:RadDataBoundListBox.ItemLoadingTemplate>

To use the OnDemandAutomatic virtualization mode simply set the DataVirtualizationMode property of the RadDataBoundListBox control to DataVirtualizationMode.OnDemandAutomatic. You will also need to handle the DataRequested event which will be fired when more data has to be loaded:

CopyC#
public MainPage()
{
    InitializeComponent();

    this.radDataBoundListBox.DataVirtualizationMode = DataVirtualizationMode.OnDemandAutomatic;

    this.radDataBoundListBox.DataRequested += this.OnDataRequested;
}

private void OnDataRequested(object sender, EventArgs args)
{
    //TODO: download data items
}

The only difference between the OnDemandManualvirtualization mode is that the DataRequested event is automatically fired.

In this virtualization mode you will have to keep track of which items have already been downloaded in order to maintain the logical order of the data items. For a simple example you can refer to the code snippet in the topic which is also relevant for the OnDemandAutomatic virtualization mode.