Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Binding.IsAsync, propriété

Obtient ou définit une valeur qui indique si Binding doit obtenir et définir des valeurs de façon asynchrone.

Espace de noms :  System.Windows.Data
Assembly :  PresentationFramework (dans PresentationFramework.dll)
XMLNS pour XAML : http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public bool IsAsync { get; set; }
<object IsAsync="bool" .../>

Valeur de propriété

Type : System.Boolean
La valeur par défaut est null.

Utilisez la propriété IsAsync lorsque l'accesseur get de votre propriété de source de liaison peut prendre longtemps. Par exemple, une propriété d'image avec un accesseur get qui télécharge à partir du Web. Affecter à IsAsync la valeur true évite de bloquer interface utilisateur pendant le téléchargement.

En attendant que la valeur arrive, la liaison signale FallbackValue, le cas échéant, ou la valeur par défaut de la propriété de cible de liaison.

Toutefois, il est rare que vous deviez utiliser la propriété IsAsync. Le .NET recommande de ne pas définir de propriétés plus lentes que ne le serait un champ set. Lorsque vous créez votre classe, envisagez de gérer les opérations extrêmement lentes en dehors de l'accesseur get et de mettre en cache le résultat. Pour plus d'informations, consultez Choosing Between Properties and Methods.

PriorityBinding dans Windows Presentation Foundation (WPF) fonctionne en spécifiant une liste de liaisons. Cette liste est classée de la priorité la plus élevée à la priorité la plus basse. Si la liaison de priorité la plus élevée retourne une valeur avec succès lors de son traitement, le traitement des autres liaisons de la liste est inutile. Dans le cas où l'évaluation de la liaison de priorité la plus élevée nécessite du temps, la priorité la plus élevée suivante qui retourne une valeur avec succès sera alors utilisée jusqu'à ce qu'une liaison d'une priorité supérieure retourne avec succès une valeur.

Pour expliquer le fonctionnement de PriorityBinding, l'objet AsyncDataSource a été créé avec les trois propriétés suivantes : FastDP, SlowerDP et SlowestDP.

L'accesseur get de FastDP retourne la valeur des données membre _fastDP.

L'accesseur get de SlowerDP attend trois secondes avant de retourner la valeur des données membre _slowerDP.

L'accesseur get de SlowestDP attend cinq secondes avant de retourner la valeur des données membre _slowestDP.

RemarqueRemarque

Cet exemple est fourni à des fins de démonstration uniquement. Le Microsoft .NET recommande de ne pas définir de propriétés plus lentes que ne le serait un champ set. Pour plus d'informations, consultez Choosing Between Properties and Methods.


public class AsyncDataSource
{
	private string _fastDP;
	private string _slowerDP;
	private string _slowestDP;

	public AsyncDataSource()
	{
	}

	public string FastDP
	{
    get { return _fastDP; }
    set { _fastDP = value; }
	}

	public string SlowerDP
	{
    get
    {
      // This simulates a lengthy time before the
      // data being bound to is actualy available.
      Thread.Sleep(3000);
      return _slowerDP;
    }
    set { _slowerDP = value; }
	}

	public string SlowestDP
	{
    get
    {
      // This simulates a lengthy time before the
      // data being bound to is actualy available.
      Thread.Sleep(5000);
      return _slowestDP;
    }
    set { _slowestDP = value; }
	}
}


La propriété Text crée une liaison avec AsyncDS ci-dessus à l'aide de PriorityBinding:


<Window.Resources>
  <c:AsyncDataSource SlowestDP="Slowest Value" SlowerDP="Slower Value"
                     FastDP="Fast Value" x:Key="AsyncDS" />
</Window.Resources>
	
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"
  DataContext="{Binding Source={StaticResource AsyncDS}}">
  <TextBlock FontSize="18" FontWeight="Bold" Margin="10"
    HorizontalAlignment="Center">Priority Binding</TextBlock>
  <TextBlock Background="Honeydew" Width="100" HorizontalAlignment="Center">
    <TextBlock.Text>
      <PriorityBinding FallbackValue="defaultvalue">
        <Binding Path="SlowestDP" IsAsync="True"/>
        <Binding Path="SlowerDP" IsAsync="True"/>
        <Binding Path="FastDP" />
      </PriorityBinding>
    </TextBlock.Text>
  </TextBlock>	
</StackPanel>


Lorsque le moteur de liaison traite les objets Binding, il commence par le premier élément Binding, qui est lié à la propriété SlowestDP. Lorsque cet élément Binding est traité, il ne retourne pas de valeur avec succès, car il est en état de veille pour 5 secondes ; l'élément Binding suivant est alors traité. L'élément Binding suivant ne retourne pas de valeur avec succès, car il est en état de veille pour 3 secondes. Le moteur de liaison se place ensuite sur l'objet Binding suivant, qui est lié à la propriété FastDP. Cet élément Binding retourne la valeur « Fast Value ». Le TextBlock affiche maintenant la valeur « Fast Value ».

Après 3 secondes, la propriété SlowerDP retourne la valeur « Slower Value ». Le TextBlock affiche ensuite la valeur « Slower Value ».

Après 5 secondes, la propriété SlowestDP retourne la valeur « Slowest Value ». Cette liaison a la priorité la plus élevée, car elle est affichée en premier. Le TextBlock affiche maintenant la valeur « Slowest Value ».

Consultez PriorityBinding pour plus d'informations sur le concept de valeur de retour avec succès à partir d'une liaison.

.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2015 Microsoft