我无法使用 ObservableCollection 的 Add 方法在单击事件时简单地将新字符串值添加到 observablecollection。我在 Settings.cs 类中创建我的 ObservableCollection,然后在我的 wp7.1 项目的多个页面中引用该 observablecollection。当我需要将一个 observablecollection 的多个项目添加到另一个时,该系统非常有效,或者将一个设置为另一个,或者使用 .Union,具体取决于所需的目的。不过,在这种情况下,我试图将单个字符串项添加到我的字符串类型的 ObservableCollection 中。我的代码如下
设置.cs
public static Setting<ObservableCollection<string>> Favorites = new Setting<ObservableCollection<string>>("Favorites", null);
收藏夹.xaml
<ListBox x:Name="FavoritesListBox" Grid.Row="1" ItemsSource="{Binding}" Margin="12,0,12,0"
SelectionChanged="FavoritesListBox_SelectionChanged">
收藏夹页面.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));
}
在FavoritesPage.xaml.cs 中使用.Add 方法不会给我任何编码错误,但是在调试时我得到一个NullReferenceException。我也尝试使用 .Insert ,但也没有用。请帮助这似乎是一个简单的解决方案,但我无法弄清楚这一点!提前致谢!