2010-06-27 5 views
1

Comment faire une telle interface utilisateur:
1) ListBox avec des éléments.
2) Des informations détaillées sur l'élément sélectionné.
3) Lorsque vous modifiez un élément dans les informations détaillées, l'élément sélectionné dans la liste devient gras ...
4) ... jusqu'à ce que vous appuyiez sur le bouton "Enregistrer" et que toutes les modifications soient transférées dans la base de données. Par exemple, pour la liaison à la liste, j'utilise la propriété Objet avec nom de chaîne et je souhaite voir les changements de cette propriété après avoir appuyé sur "Enregistrer".Liaison de données de droite dans WPF

Le principal problème consiste à appeler l'actualisation forcée de ListBox lorsque je lier UpdateCommand à la propriété SaveButton Command.

Répondre

0

Vous pouvez utiliser un DataTrigger. Ajoutez une propriété au modèle de vue de vos éléments, nommée Dirty. Définissez ceci sur true lorsque vous modifiez un élément. Lorsque la valeur de Dirty est true, le Datatrigger définit le poids de la police sur bold.

<Window.Resources>     
     <Style TargetType="{x:Type TextBlock}" x:Key="AStyle"> 
      <Style.Triggers> 
       <DataTrigger 
        Binding="{Binding Path=Dirty}" 
        Value="True"> 
        <Setter Property="FontWeight" Value="Bold" />      
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 

     <DataTemplate x:Key="ATemplate"> 
      <StackPanel> 
       <TextBlock Text="{Binding Name}" Style="{StaticResource AStyle}" /> 
      </StackPanel> 
     </DataTemplate> 
    </Window.Resources> 

Et puis simplement définir votre ItemTemplate à ATemplate

+0

Merci, cela fonctionne. Mais je ne peux toujours pas faire de sauvegarde seulement après avoir cliqué sur le bouton "Enregistrer". –