2009-12-07 7 views
47

मैं इस तरह एक वर्ग है:सी #/डब्ल्यूपीएफ: संपत्ति ViewModel में सभी गुणों के लिए CHanged?

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; 
    } 

मेरे बक्सें नाम और ViewModel की आयु के लिए बाध्य कर रहे हैं। यदि मैं व्यूमोडेल में _person ऑब्जेक्ट को बदलता हूं, तो क्या मुझे प्रत्येक प्रॉपर्टी को राइजप्रॉपर्टी के लिए कॉल करना होगा या फिर इसे स्वचालित रूप से करने का कोई तरीका है (मेरे concret उदाहरण में मेरे पास लगभग 15 गुण हैं ..)?

किसी भी मदद के लिए धन्यवाद।

चीयर्स यूसुफ

उत्तर

80

आप इंगित कर सकते हैं सभी गुण PropertyChangedEventArgs में संपत्ति के नाम के लिए null या string.Empty का उपयोग करके बदल दिया है। यह PropertyChanged के लिए प्रलेखन में उल्लिखित है।

+1

ग्रेट, मैं महीनों से ऐसा कुछ ढूंढ रहा था .. मुझे हमेशा अपने व्यू मॉड्यूल में प्रत्येक संपत्ति के लिए RaisePropertyChanged कॉल करना पड़ा :-) –

+0

वाह यह इतना उपयोगी है, मुझे विश्वास नहीं है कि मुझे यह नहीं पता था। – Mangist

संबंधित मुद्दे