ObservableCollectionのAddメソッドを使用して、クリックイベント時にobservablecollectionに新しい文字列値を追加するのに問題があります。Settings.csクラスでObservableCollectionを作成し、wp7.1プロジェクトの複数のページでそのobservablecollectionを参照します。このシステムは、必要な目的に応じて、1つのobservablecollectionの複数のアイテムを別のアイテムに追加する必要がある場合に、1つを他のアイテムと等しく設定するか、.Unionを使用して完全に機能します。ただし、この場合、string型のObservableCollectionに単一の文字列アイテムを追加しようとしています。私のコードは次のとおりです
Settings.cs
public static Setting<ObservableCollection<string>> Favorites = new Setting<ObservableCollection<string>>("Favorites", null);
Favorite.xaml
<ListBox x:Name="FavoritesListBox" Grid.Row="1" ItemsSource="{Binding}" Margin="12,0,12,0"
SelectionChanged="FavoritesListBox_SelectionChanged">
FavoritePage.xaml.cs
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string favorUrl = null;
NavigationContext.QueryString.TryGetValue("curUrl", out favorUrl);
if (favorUrl != null )
{
//This works but the FavoritesListBox items are cleared upon new page navigation or closing
//this.FavoritesListBox.Items.Add(favorUrl);
//This does not work!?
//if (Settings.Favorites.Value == null)
//{
// //Settings.Favorites.Value.Add(favorUrl);
//}
//else
//{
// Settings.Favorites.Value.Add(favorUrl);
//}
}
//base.OnNavigatedTo(e);
}
private void FavoritesListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
this.NavigationService.Navigate(new Uri("/MainPage.xaml?favUrl=" + e.AddedItems[0], UriKind.Relative));
}
FavoritePage.xaml.csで.Addメソッドを使用してもコーディングエラーは発生しませんが、デバッグ時にNullReferenceExceptionが発生します。また、.Insertを使用してみましたが、それも機能しませんでした。これは簡単な修正のようですが、私はこれを理解することができませんでした!前もって感謝します!