6

मैं एक वीएस 2010 प्रोजेक्ट में पीसीएल की कोशिश कर रहा हूं जिसमें मैं डब्ल्यूपीएफ (4 और उच्चतर) और सिल्वरलाइट (4 और उच्चतर) का समर्थन करना चाहता हूं। MS documentation नीचे उद्धरण मुझे भ्रमित कर रहा है।पोर्टेबल क्लास लाइब्रेरी में देखेंModel समर्थन

यह लगता है पीसीएल परियोजना में सिस्टम.Windows संदर्भ देने के लिए कह रहा है, लेकिन मुझे नहीं लगता कि यह कैसे करना है।

आईसीओएमएंड और आईएनओटीफाइप्रोपर्टी को मेरे पीसीएल प्रोजेक्ट में बदलने के लिए मुझे क्या करना चाहिए?

देखें मॉडल पैटर्न सहायक जब आप सिल्वरलाइट और विंडोज फोन 7 लक्षित करते हैं, तो आप अपने समाधान में दृश्य मॉडल पैटर्न लागू कर सकते हैं। इस पैटर्न को लागू करने के लिए कक्षा सिल्वरलाइट से System.Windows.dll असेंबली में स्थित हैं। System.Windows.dll विधानसभा समर्थित नहीं है जब आप एक पोर्टेबल कक्षा लाइब्रेरी परियोजना को लक्षित करता है कि .NET फ्रेमवर्क 4 या Xbox 360

इस विधानसभा में कक्षाओं में निम्न शामिल हैं बनाने के लिए:

प्रणाली। Collections.ObjectModel.ObservableCollection

System.Collections.ObjectModel.ReadOnlyObservableCollection

System.Collections.Specialized.INotifyCollectionChanged

System.Collections.Specialized.NotifyCollectionChangedAction

System.Collections.Specialized.NotifyCollectionChangedEventArgs

System.Collections.Specialized.NotifyCollectionChangedEventHandler

System.Windows.Input.ICommand

.नेट फ्रेमवर्क 4 में इन कक्षाएं भी शामिल हैं, लेकिन वे में System.Windows.dll के अलावा असेंबली लागू हैं। एक पोर्टेबल कक्षा लाइब्रेरी परियोजना के साथ इन कक्षाओं का उपयोग करने के लिए आपको System.Windows.dll संदर्भ और नहीं होना चाहिए .NET फ्रेमवर्क 4 में सूचीबद्ध प्रलेखन विधानसभाओं

संपादित

INotifyPropertyChanged उपलब्ध नहीं है; नीचे दिए गए कोड को संकलित नहीं

public abstract class ViewModelBase : INotifyPropertyChanged 
{ 
    public virtual event PropertyChangedEventHandler PropertyChanged; 

    ... 

} 
+0

आपने 'प्रिंटर नियंत्रण भाषा' के लिए कोड 'pcl'' टैग किया है। क्या आपका मतलब 'पोर्टेबल क्लास लाइब्रेरी' है? – nvoigt

+0

@nvoight - धन्यवाद! – Berryl

उत्तर

2

हाँ, MSDN इस मुद्दे पर भ्रामक (कोई त्रुटि है?)

मूल रूप से, आप कोई लेना देना नहीं है!

व्हील आप अपना पीसीएल प्रोजेक्ट बनाते हैं, बस उपयुक्त ढांचे का चयन करें। new pcl project

पीसीएल स्वचालित रूप से आपके लिए संदर्भ प्रबंधित करता है।

public abstract class ViewModelBase : INotifyPropertyChanged 
    { 
     public event PropertyChangedEventHandler PropertyChanged; 

     protected virtual void OnPropertyChanged(string propName) 
     { 
      if (PropertyChanged != null) 
      { 
       PropertyChanged(this, new PropertyChangedEventArgs(propName)); 
      } 
     } 
    } 

आज़माएं!

+0

यह भ्रमित करने वाला हिस्सा है - मैंने ऐसा किया! मेरा संपादन देखें; मुझे INotifyPropertyChanged तक पहुंच नहीं मिल रही है। – Berryl

+0

क्या आप वीएस 2010 पर पीसीएल ऐड-इन (मेरे जैसे) या VS2012 देशी समर्थन के साथ हैं? पीसीआर के साथ – Berryl

+0

वीएस 2010 (जैसे आप) – Cybermaxs

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