2013-06-19 16 views
5

MVVM Light framework'ü kullanarak WPF'deki bir projede çalışıyorum. Bir ObservableCollection<Worker> bağlı bir DataGrid var. Şu an itibariyle, yeni bir öğe eklediğimde DataGrid güncellenmiyor ve bunun nedeni, ayarlayıcının asla patlamamasıdır.GözlemlenebilirCollection belirleyici öğe eklendiğinde tetiklenmiyor

DataManager.Data.MasterWorkerList.Add(_create.NewWorker()); 

nasıl yüzden UI güncelleyebilirsiniz yangın RaisePropertyChanged alabilirsiniz:

public ObservableCollection<Worker> MasterWorkerList 
{ 
    get { return _masterWorkerList; } 
    set 
    { 
     System.Windows.MessageBox.Show("Firing"); 
     _masterWorkerList = value; 
     RaisePropertyChanged(() => MasterWorkerList); 
    } 
} 

messagebox asla bu çağrı bile, görüntüler? Ben boşuna bu yazı içinde çözümleri kullanarak denedim

: ObservableCollection not noticing when Item in it changes (even with INotifyPropertyChanged)

Herhangi bir tavsiye mutluluk duyacağız. Kodumdan daha fazlasına ihtiyacınız varsa, lütfen bana bildirin.

cevap

9

Nesnelerinizin listeleri üzerinde genel ayarlayıcılar olmamalıdır. Sen doğrusu

public MyClass(){ 
    _masterWorkerList = new ObservableCollection<Worker>(); 
    _masterWorkerList.CollectionChanged += OnCollectionChanged; 
} 

public ObservableCollection<Worker> MasterWorkerList 
{ 
    get { return _masterWorkerList; } 
} 

private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e){ 
    System.Windows.MessageBox.Show("Firing"); 
    //RaisePropertyChanged(() => MasterWorkerList); 
} 

CollectionChanged olay denir Yapıcınızda ut kurmalıyım zaman ObservableCollection Add şey. Daha fazla kontrollü kontrole ihtiyacınız varsa ObservableCollection'dan miras alabilir ve AddItem ve RemoveItem yöntemlerini geçersiz kılabilirsiniz.

İlgili konular