2010-01-18 2 views
0

Je listbox qui affiche des informations sur la liste des objets:ListBox WPF: comment mettre à jour les données avec une liaison

  <ListBox Grid.Column="0" Height="152" Name="CustomersList" HorizontalAlignment="Stretch"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Path=Name, Mode=OneWay}"/> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 

je montrerais des informations plus détaillées sur l'élément sélectionné dans un autre bloc, mais je ne sais pas (et ne peut pas trouver) comment lier l'élément sélectionné à ce contexte de données de bloc. Je suppose que ce doit être quelque chose comme ceci:

   <Grid Grid.Column="1" DataContext="{Binding Path=ItemSelected, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="150"/> 
        <ColumnDefinition Width="250"/> 
       </Grid.ColumnDefinitions> 

       <Grid.RowDefinitions> 
        <RowDefinition /> 
        <RowDefinition/> 
        <RowDefinition/> 
       </Grid.RowDefinitions> 

       <TextBlock Grid.Row="0" Grid.Column="0" Text="Id" VerticalAlignment="Center" /> 
       <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Path=Id}" VerticalAlignment="Center"/> 

       <TextBlock Grid.Row="1" Grid.Column="0" Text="Name" VerticalAlignment="Center"/> 
       <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Path=Name}" VerticalAlignment="Center"/> 

       <StackPanel Grid.Row="2" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Center"> 
        <Button Content="Add new" /> 
        <Button Content="Store changes" /> 
       </StackPanel> 
      </Grid> 

Mais le problème est que l'article de données à binded au réseau est spécifié nulle part et je ne sais pas comment faire.

Toute suggestion serait bienvenu.

Merci!

P.S. J'ai essayé de spécifier CustomersList.ItemsSource en tant que DataContext pour la grille - cela n'a donné aucun résultat.

Répondre

2

Vous pouvez lier à la propriété SelectedItem de la zone de liste, un moyen utilise ElementName.

<Grid DataContext="{Binding ElementName=CustomersList, Path=SelectedItem}"> </Grid> 
+0

Merci beaucoup, ça marche! – Budda

+0

Alors s'il vous plaît marquer la réponse de PMN comme la bonne réponse. –

Questions connexes