1
我在MainViewModel類的Silverlight的Windows Phone數據綁定 - noob問題
// 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;
數據綁定的XAML看起來像這樣有一個基本的Windows Phone應用程序列表,用這樣的代碼:
<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>
我認爲我對ObservableCollection和INotifyPropertyChanged是如何工作有誤解,因爲我認爲這個代碼應該工作。 Databinding NonCollection項目正如我所期望的那樣使用INotifyPropertyChanged實現。
這幾乎是正確的,本質上ObservableCollection通知綁定關於集合的變化,這就是爲什麼第一個代碼工作。如果您想要替換集合,則需要如上所述的INPC。我更喜歡前者,因爲它可以製作更乾淨的代碼(使用替換的一些擴展方法) – 2010-07-30 04:32:28
有趣的是,我使用內置示例,它使用「自動屬性」樣式定義。我沒有想到將其改爲使用INPC。謝謝! – Nate 2010-07-30 13:41:35
我認爲ObservableCollection的東西在第一次使用它的時候會咬人 – 2010-07-31 00:07:05