1

Я использую свет MVVM. Сначала я добавляю два элемента; после этого я добавляю еще два новых элемента в списке и вызываю событие RaisePropertyChanged; но он не обновляет вид списка, он показывает только старые элементы. В чем проблема в моем коде?ObservableCollection не работает RaisePropertyChangeEvent

My Model

public class ViewPeopleModel 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 
    private string _imageURL; 
    public string ImageURL 
    { 
     get 
     { 
      return _imageURL; 
     } 
     set 
     { 
      _imageURL = value; 
      OnPropertyChanged("ImageURL"); 
     } 
    } 
    public void OnPropertyChanged(string property) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(property)); 
     } 
    } 
} 

вид Модель

public class ViewPeopleViewModel : ViewModelBase 
{ 
    public ObservableCollection<ViewPeopleModel> ProfileList { get; set; } 

    public ViewPeopleViewModel() 
    { 
     ObservableCollection<ViewPeopleModel> _people = new ObservableCollection<ViewPeopleModel>(); 
     _people.Add(new ViewPeopleModel { ImageURL = "url1" }); 
     _people.Add(new ViewPeopleModel { ImageURL = "url2" }); 

     ProfileList = _people; 
     RaisePropertyChanged("ProfileList"); 
    } 
    public void AddNewPeople() 
    { 
     ObservableCollection<ViewPeopleModel> _people = new ObservableCollection<ViewPeopleModel>(); 
     _people.Add(new ViewPeopleModel { ImageURL = "url5" }); 
     _people.Add(new ViewPeopleModel { ImageURL = "url6" }); 

     ProfileList = _people; 
     RaisePropertyChanged("ProfileList"); 
    } 
} 
+0

Какого типа вы используете в XAML связывания? убедитесь, что вы используете «TwoWay» или «OneWay» – saurabh

+0

Было бы полезно увидеть ваш xaml тоже. – lvoros

+0

Я использую привязку TowWay – suresh

ответ

0

Попробуйте сделать это в вашем AddNewPeople методы

public void AddNewPeople() 
{ 
     ProfileList.Clear(); 

     ProfileList.Add(new ViewPeopleModel{ ImageURL ="url5" }); 
     ProfileList.Add(new ViewPeopleModel{ ImageURL ="url6" }); 
}