2009-12-07 22 views
47

Bir sınıf böyle ettik:C#/WPF: PropertyModel'deki tüm özellikler için özellik seçildi mi?

public class PersonViewModel : ViewModelBase //Here is the INotifyPropertyChanged Stuff 
{ 
    public PersonViewModel(Person person) 
    { 
     PersonEntity = person; 
    } 

    public Person PersonEntity { 
     get { return PersonEntity.Name; } 
     private set { PersonEntity.Name = value; RaisePropertyChanged("PersonEntity"); 
    } 

    public string Name { 
     get { return PersonEntity.Name; } 
     set { PersonEntity.Name = value; RaisePropertyChanged("Name"); 
    } 
    public int Age{ 
     get { return PersonEntity.Age; } 
     set { PersonEntity.Age= value; RaisePropertyChanged("Age"); 
    } 

    public void ChangePerson(Person newPerson) 
    { 
     //Some Validation.. 
     PersonEntity = newPerson; 
    } 

Benim TextBoxes Adı ve ViewModel Çağında bağlanmıştır. ViewModel'deki _person nesnesini değiştirirseniz, her Mülk için bir RaisePropertyChanged öğesini tekrar aramak zorunda mıyım yoksa bunu otomatik olarak yapmanın bir yolu var mı (somut örneğimde yaklaşık 15 tane özellik var ..)?

Yardımlarınız için teşekkür ederiz.

Alkış Joseph

cevap

80

Tüm özellikler PropertyChangedEventArgs özellik adı için null veya string.Empty kullanarak değişti gösterebilir. Bu, PropertyChanged belgelerinde belirtilmiştir.

+1

BÜYÜK, aylardır beri böyle bir şey arıyordum .. Her zaman her bir özellik için ViewModels :-) içinde RaisePropertyChanged çağırmak zorunda kaldı –

+0

Vay bu çok yararlı, ben bunu bilmiyordum inanamıyorum. – Mangist

İlgili konular