Sto provando il PCL in un progetto VS 2010 in cui vorrei supportare WPF (4 e versioni successive) e Silverlight (4 e versioni successive). L'estratto di MS documentation di seguito mi confonde.Supporto ViewModel nella libreria di classi portatili
E sembra dire a fare riferimento a System.Windows nel progetto PCL, ma non vedo come farlo.
Cosa devo fare per avere ICommand e INotifyPropertyChanged nel mio progetto PCL?
Sostenere il pattern Model View Quando indirizzi Silverlight e Windows Phone 7, è possibile implementare il modello di vista del modello nella soluzione . Le classi per implementare questo modello si trovano nell'assembly System.Windows.dll di Silverlight. L'assemblea System.Windows.dll non è supportata quando si crea un progetto Portable Class Library che gli obiettivi del .NET Framework 4 o Xbox 360.
Le classi di questa assemblea sono i seguenti:
sistema. 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
Il .NET Framework 4 contiene anche queste classi, ma sono implementate negli assembly diversi da System.Windows.dll. Per utilizzare queste classi con un portatile progetto Libreria di classi , è necessario fare riferimento System.Windows.dll e non i gruppi elencati nel .NET Framework 4 documentazione
EDIT
INotifyPropertyChanged non è disponibile; il codice qui sotto non viene compilato
public abstract class ViewModelBase : INotifyPropertyChanged
{
public virtual event PropertyChangedEventHandler PropertyChanged;
...
}
Hai codificato il tuo codice 'pcl' per' Printer control language'. Intendevi invece "Portable Class Library"? – nvoigt
@nvoight - grazie! – Berryl