Busy Indicator with DomainDataSource control


We have seen a code behind approach for a Busy Indicator where, based on a Load operation, we set an IsBusy property of Busyindicator as either true or false. The following example shows sample code that enables a busy indicator with continuous operations and a Code Behind approach.


             biLoading.IsBusy = true;

                //-- Do Some Work//

            biLoading.IsBusy = false;

How ever the above approach is straight forward and this article is how to use a Busy Indicator declaratively along with XAML code. As we know the DomainDataSource control enables interaction between a XAML user interface and the DataContext. Mostly it is used for binding to a specific control through XAML.

Sample code used for data binding using DomainDataSource control is as follows:

  <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:CustomerPresentationModel, CreateList=true}" Height="0"
                                      LoadedData="customerPresentationModelDomainDataSource_LoadedData"
                                      Name="customerPresentationModelDomainDataSource"
                                      QueryName="GetCustomersWithAddressQuery" Width="0"
                                      LoadSize="30" PageSize="10">
            <riaControls:DomainDataSource.DomainContext>
                <my:ADVWORKDomainContext />
            </riaControls:DomainDataSource.DomainContext>
        </riaControls:DomainDataSource>


More details about a DomainDataSource Control can be found from 
here.

Using BusyIndicator declaratively, along with XAML
 

Well with the above scenario we want to implement the Busy Indicator; not from code behind. To implement a busy indicator drag and drop the the Busy Indicator control to the silverlight page and make following changes to the XAML code.


    <toolkit:BusyIndicator Height="75" HorizontalAlignment="Center" Margin="0" Name="biLoading" 
                               VerticalAlignment="Center" Width="200" 
                               IsBusy="{Binding Path=IsBusy,  ElementName=customerPresentationModelDomainDataSource}" IsEnabled="True" />


Bind the Isbusy property of the BusyIndicator to the DomainDataSourceControl, exactly the same as above.

Up Next
    Ebook Download
    View all
    Learn
    View all