2010-01-08 5 views
1

J'ai une zone de liste qui contient une liste d'objets (permet de dire que les adresses)mode Databinding explicite

La liste des éléments de la boîte source est liée à cette collection observable

<ListBox x:Name="listDetails" 
ItemsSource="{Binding}" 

...

Alors j'ai une zone de texte, cela est lié au nom FILD de l'objet courant

<TextBox x:Name="textBoxName" Text="{Binding Name, UpdateSourceTrigger=Explicit}" /> 

S o Je m'attends à ce que la propriété Name de mon objet actuel ne soit pas modifiée sauf si je le mets explicitement à jour.

Cependant, il est mis à jour ... des idées pour pourquoi?

Aussi c'est dans une fenêtre, si je ferme la fenêtre et rouvre la fenêtre en quelque sorte la même sélection sur la zone de liste est conservée ..

je pensais une fois que la fenêtre était fermée il oublierait tout au sujet la sélection actuelle de sa liste?

+0

pouvez-vous un peu xaml? Il sera plus facile d'identifier vos liaisons – santosc

Répondre

0

trouvé le moyen de le résoudre, j'ai ajouté un événement au listgbox

private void OnListValueChanged(object sender, SelectionChangedEventArgs e) 
     { 
      ListBox lb = e.Source as ListBox; 
      if (lb != null) 
      { 
       object dc = null; 
       if (lb.SelectedIndex != -1) 
        dc = lb.Items[lb.SelectedIndex]; 

       gridDetails.DataContext = dc; 
      } 
     } 

la grille détails contexte a été fixé de manière indépendante chaque fois.