我是Windows Phone 7.1開發新手。我在VB.NET工作。Windows Phone ListBox/ScrollView控件不會更新
我正在處理類似'How to: Create a Basic Local Database Application for Windows Phone'的應用程序。
我已經設法使用上面的示例編寫添加和刪除代碼。
但更新代碼...當我返回到顯示所有數據的頁面時,它不會使用新信息進行更新。信息是保存(提交),因爲當我在單獨的頁面中查看記錄詳細信息時,它們就在那裏。
其中顯示所有數據的XAML頁面的代碼是這樣的:
<ScrollViewer Margin="12,148,12,90" Name="scrollViewerVendors">
<ItemsControl ItemsSource="{Binding AllVendors}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderThickness="1" CornerRadius="12" Margin="2">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Text="{Binding Name}" FontSize="28" />
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Text="{Binding Address}" />
</StackPanel>
<Button Grid.Row="0" Grid.Column="1" Grid.RowSpan="2"
x:Name="EditVendorButton"
BorderThickness="1"
Click="EditVendorButton_Click">
<Image Source="/Images/AppBar/appbar.edit.rest.png" />
</Button>
<Button
Grid.Row="0" Grid.Column="2" Grid.RowSpan="2"
x:Name="DeleteVendorButton"
BorderThickness="1"
Click="DeleteVendorButton_Click">
<Image Source="/Images/AppBar/appbar.delete.rest.png" />
</Button>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
我已經寫在編輯頁面的更新代碼:
Using DemoAppDB As New DemoAppContext.DemoAppContext("Data Source=isostore:/DemoApp.sdf")
Dim CurrentVendor = From VendorDetails In DemoAppDB.Vendors Where VendorDetails.VendorID = CInt(sVendorID) Select VendorDetails
For Each Vendor In CurrentVendor
Vendor.Name = TextBox1.Text
Vendor.Address = TextBox2.Text
Vendor.ContactPerson = TextBox3.Text
Vendor.Phone = TextBox4.Text
Vendor.Email = TextBox5.Text
Vendor.Notes = TextBox6.Text
Next
'Save changes to the database
DemoAppDB.SubmitChanges()
End Using
的廠商ID是順利通過betweend頁。我查過了。
數據庫更新,但我似乎無法獲得更新ScrollView記錄。我也嘗試了一個ListView控件..相同的結果。
模型類實現INotifyPropertyChanged,INotifyPropertyChanging。 viewmodel類實現INotifyPropertyChanged。
如果您需要任何其他細節,請問我。謝謝您閱讀此篇!
我已經解決了通過在更新後添加NotifyPropertyChanged(「AllVendors」)來刷新ObservableCollection。 – milo2011
更新在另一個頁面中進行,然後返回列表頁面,其中顯示所有供應商。在這種情況下,你是否可以使用OnNavigatedTo或OnNavigatedFrom?按照示例, – milo2011
可能是OnNavigatedTo –