2010-09-03 2 views
3

je commence WPF, regardant How do o: Getting started with Entity FrameworkPourquoi la nécessité d'une liaison dans ce contexte

je suis abit confus pourquoi la nécessité de

<ListBox Name="ListBox1" ItemsSource="{Binding Source={StaticResource CustomerSource}}" > 

pourquoi ne peux pas je ne

<ListBox Name="ListBox1" ItemsSource="{StaticResource CustomerSource}" > 

comment Est-ce que je sais quand j'ai besoin Binding. parce que le 1er pensée, tout comme j'utiliser une ressource statique dans Styles

<Button Style="{StaticResource someStyle}" 

pourquoi ne pas

<Button Style="{Binding Source={StaticResource someStyle}}" 

Répondre

2

Cet exemple attribue une valeur récupérée à partir des ressources en utilisant la clé spécifiée à la propriété Text:

<TextBox Text="{StaticResource SomeText}" /> 

Cet exemple se fixe la propriété Text à une propriété sur un objet récupéré à partir les ressources utilisant la clé spécifiée:

<TextBox Text="{Binding Source={StaticResource SomeObject}, Path=SomeProperty}" /> 

La Binding class est utilisé pour liaison de données qui est un moyen de faire surface des données récupérées à partir d'une source de données sur l'interface graphique, permettant aux utilisateurs d'interagir avec elle. Sans les valeurs de liaison de données sont simplement affectées aux contrôles sur l'interface utilisateur.

Les liaisons ajoutent une couche d'abstraction entre les contrôles de l'interface utilisateur et la source de données sous-jacente associée, fournissant un rebond des services. Voici quelques-unes des plus importantes:

  • propagation automatique des modifications dans les données entre l'interface utilisateur et la source de données dans l'une ou les deux directions
  • Conversion/mise en forme des valeurs
  • notification par les événements

ressources connexes:

0

Vous pouvez également définir la DataContext sur le contrôle des parents à la place. Si le ListBox est contenu par exemple dans un StackPanel par exemple.

<StackPanel x:Name="parentControl" DatContext="{StaticResource CustomerSource}"> 
<ListBox x:Name="ListBox1" ItemSource="{Binding}"> 
... 
</ListBox> 
</StackPanel> 
Questions connexes