public CategoriesListViewModel() { Messenger.Default.Register <NotificationMessage>(this, (message) => { switch (message.Notification) { case "NewCategory": SelectedCategory = new Category() { C_id = -1 }; break; } }); Messenger.Default.Register <NotificationMessage>(this, (message) => { switch (message.Notification) { case "DeleteCategory": if (SelectedCategory != null) { var mres = MessageBox.Show("Supprimer Category", "Vous etes Sur ?", MessageBoxButton.YesNo, MessageBoxImage.Warning); if (mres == MessageBoxResult.Yes) { _dbContext.Categories.Remove(_dbContext.Categories.Find(SelectedCategory.C_id)); _dbContext.SaveChanges(); ListCategories = new ObservableCollection <Category>(_dbContext.Categories); } } else { var mres = MessageBox.Show("Selectionner un category a supprimer ?", "Supprimer Category", MessageBoxButton.OK, MessageBoxImage.Error); } break; } }); SearchItems = new ObservableCollection <SearchItem>() { new SearchItem() { IsSelected = true, Name = "Code" }, new SearchItem() { IsSelected = true, Name = "Intitule" }, new SearchItem() { IsSelected = true, Name = "Technology" } }; foreach (var item in SearchItems) //DirtyCode * Needs Optimisation { item.PropertyChanged += UpdateSearchTerms; } _dbContext = new ITCompTrainingDBEntities1(); _worker.DoWork += LoadCategories; _worker.RunWorkerCompleted += LoadCoursesCompleted; _worker.RunWorkerAsync(); }