J'ai une application de liste de Windows Phone de base, avec le code comme celui-ci dans la classe MainViewModelSilverlight Windows Phone Databinding - Noob question
// CODE THAT WORKS --
Items.Clear();
foreach (var itm in e.Result)
Items.Add(itm);
Count = Items.Count;
// CODE THAT DOES NOT WORK -- I'm trying to understand WHY
Items = e.Result;
Le databinding Xaml ressemble à ceci:
<DataTemplate>
<StackPanel x:Name="DataTemplateStackPanel" Orientation="Horizontal">
<Image x:Name="ItemImage" Source="/AppName;component/Images/ArrowImg.png" Height="43" Width="43" VerticalAlignment="Top" Margin="10,0,20,0"/>
<StackPanel>
<TextBlock x:Name="ItemText" Text="Event Name" Margin="-2,-13,0,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
<TextBlock x:Name="DetailsText" Text="{Binding Path=Description}" Margin="0,-6,0,3" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
I pense que j'ai un malentendu sur la façon dont ObservableCollection et INotifyPropertyChanged fonctionnent, parce que je pense que ce code devrait fonctionner. La liaison de données aux éléments NonCollection fonctionne comme je l'attendais avec mon implémentation INotifyPropertyChanged.
C'est à peu près juste, essentiellement ObservableCollection notifie les liaisons sur les modifications de la collection, c'est pourquoi le premier code fonctionne. Vous avez besoin de l'INPC comme mentionné ci-dessus si vous voulez remplacer la collection. Je préfère l'ancien car il peut rendre le code plus propre (avec quelques méthodes d'extension pour remplacer) –
Intéressant, j'utilisais l'exemple intégré, et il utilise la définition de style "auto-propriété". Je n'ai pas eu l'idée de le changer pour utiliser l'INPC. Merci! – Nate
Je pense que la chose ObservableCollection a mordu tout le monde la première fois qu'ils l'utilisent ... –