2015-08-21 9 views
0

Je suis arrivé cette liste:Mise à jour de l'interface utilisateur Listbox après avoir ajouté l'article à une liste d'objets

List<BoardNote> offlinelist = new List<BoardNote>(); 

Il est binded à mon Listbox « boardlist ». Maintenant, je veux que l'interface utilisateur de la Listbox soit mise à jour à chaque fois après l'ajout d'une nouvelle note. Je sais déjà que je devrais utiliser "INotifyCollectionChanged" mais je suis trop pressé pour le faire. Voici le code du "boardlist":

<ListBox x:Name="BoardList" ItemsSource="{Binding offlinelist}" > //I need to add binding mode two way and property changed idk 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <Grid> 
         <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> 
          <TextBox IsReadOnly="True" ScrollViewer.VerticalScrollBarVisibility="Visible" Text="{Binding text}" TextWrapping="Wrap" Foreground="DarkBlue"></TextBox> 
          <AppBarButton Visibility="{Binding visibility}" Icon="Globe" Click="OpenInBrowser" x:Name="Link"></AppBarButton> 
          <AppBarButton Icon="Copy" Click="Copy"></AppBarButton> 
          <AppBarButton Icon="Delete" Click="Delete"></AppBarButton> 
         </StackPanel> 
        </Grid> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

Répondre

0

Vous pouvez utiliser ObservalbleList au lieu de la liste. Il implémente déjà INotifyCollectionChanged pour vous.

+0

J'ai donc fait les changements suivants, mais cela ne fonctionne pas: ObservableCollection offlinelist = new ObservableCollection (); et ItemsSource = "{Binding offlineelist, Mode = TwoWay, UpdateSourceTrigger = PropertyChanged}" et var newnote = new BoardNote (UserInput.Text); offlinelist.Add (nouvelle note); ne met pas à jour l'interface utilisateur –

+0

Avez-vous une propriété pour votre liste hors connexion? Cela ne fonctionnera pas avec un champ. En outre, vous devez définir le DataContext à votre ViewModel, si vous ne spécifiez aucune option supplémentaire à votre liaison. – P3N9U1N

+0

Ce n'est pas le problème, Datacontext et d'autres choses comme ça fonctionne très bien, si je place la source d'articles à la liste de diffusion après avoir ajouté des éléments, les éléments sont affichés, mais il ne se met pas à jour. –

0

Vous devez implémenter une ObservableCollection dans votre ViewModel afin d'obtenir des mises à jour.