У меня есть данные, сохраненные в IsolatedStorage в моем приложении WP7, эти данные являются ObservableCollection
Затем я загружаю данные в наблюдаемую коллекцию в приложении, которое привязывается к представлению списка с табличкой данных
Но когда я делаю это (или просто добавляю данные в список с привязкой к данным) в конструкторе, он запускает событие SelectionBox с измененным значением, поэтому, прежде чем мое приложение будет полностью загружено, это происходит.
У меня есть событие для выбора, измененное, чтобы показать подробности об объекте, по которому щелкнули, и это происходит сбой, когда это происходит (по какой-то причине Selectedindex равен 0, поэтому объект 1 в загруженном списке выбирается автоматически при загрузке)
public partial class MainPage : INotifyPropertyChanged
{
public ObservableCollection<Note> NotesCollection { get; set; }
public CollectionViewSource NotesViewSource;
private readonly IsolatedStorageSettings settings;
// Constructor
public MainPage()
{
InitializeComponent();
NotesCollection = new ObservableCollection<Note>();
settings = IsolatedStorageSettings.ApplicationSettings;
if (settings.Contains("Notes"))
{
NotesCollection = (ObservableCollection<Note>)settings["Notes"];
}
else
{
settings.Add("Notes", NotesCollection);
}
NotesViewSource.View.Refresh();
//var note = new Note("hej", "hej", DateTime.Now, DateTime.Now);
//NotesCollection.Add(note); this also fires the event
NotesViewSource = new CollectionViewSource { Source = NotesCollection };
DataContext = this;
ListBoxNotes.ItemsSource = NotesViewSource.View;
}
мой выбор изменился
private void ListBoxNotesSelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (ListBoxNotes.SelectedIndex == -1)
return;
var note = ListBoxNotes.SelectedItem as Note;
if (!(note is Note)) return;
(Application.Current as App).Note = note;
ListBoxNotes.SelectedIndex = -1;
NavigationService.Navigate(new Uri("/Views/DetailsView.xaml", UriKind.Relative));
}