Próbuję PCL w projekcie VS 2010, w którym chciałbym wspierać WPF (4 i wyżej) i Silverlight (4 i wyżej). Poniższy fragment o numerze MS documentation jest mylący.Obsługa ViewModel w Portable Class Library
Wygląda na to, że brzmi: dla odniesienia do System.Windows w projekcie PCL, ale nie wiem, jak to zrobić.
Co należy zrobić, aby mieć ICommand i INotifyPropertyChanged w moim projekcie PCL?
Wspieranie Wzorzec Widok Model przypadku kierowania Silverlight i Windows Phone 7, można zaimplementować widoku modelu wzór w rozwiązania . Klasy implementujące ten wzorzec znajdują się w zestawie System.Windows.dll z Silverlight. Zespół System.Windows.dll nie jest obsługiwany podczas tworzenia Portable Class Library projekt, który celuje w NET Framework 4 lub Xbox 360.
Klasy w tym zespole są następujące:
System. 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
.NET Framework 4 zawiera także te klasy, ale są one zaimplementowane w zespołach innych niż System.Windows.dll. Aby skorzystać z tych klas z Portable Class Library projektu, należy odwołać System.Windows.dll a nie zespoły wymienione w .NET Framework 4 dokumentacja
EDIT
INotifyPropertyChanged nie jest dostępny; Poniższy kod nie będzie kompilować
public abstract class ViewModelBase : INotifyPropertyChanged
{
public virtual event PropertyChangedEventHandler PropertyChanged;
...
}
Oznaczono, że kodujesz 'pcl' dla' Printer control language'. Czy chodziło Ci o "Portable Class Library"? – nvoigt
@nvoight - dziękuję! – Berryl