Я тестирую PCL в проекте VS 2010, в котором я хотел бы поддерживать WPF (4 и выше) и Silverlight (4 и выше). Вышеприведенный фрагмент MS documentation смущает меня.Поддержка ViewModel в библиотеке портативных классов
Это кажется, чтобы сказать ссылку System.Windows в проекте PCL, но я не вижу, как это сделать.
Что я должен сделать, чтобы иметь ICommand и INotifyPropertyChanged в моем проекте PCL?
Поддержка Pattern View Model Когда цель Silverlight и Windows Phone 7, вы можете реализовать шаблон вид модели в вашем растворе. Классы для реализации этого шаблона находятся в сборке System.Windows.dll из Silverlight. System.Windows.dll сборка не поддерживается при создании портативного библиотеки классов проект, который предназначается для платформы .NET Framework 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
В .NET Framework 4 также содержит эти классы, но они реализованы в ассамблеях, отличных от System.Windows.dll. Для того, чтобы использовать эти классы с портативной библиотеки классов , вы должны ссылаться на System.Windows.dll и не сборки, перечисленные в в .NET Framework 4 документация
EDIT
INotifyPropertyChanged не доступен; Приведенный ниже код не будет компилироваться
public abstract class ViewModelBase : INotifyPropertyChanged
{
public virtual event PropertyChangedEventHandler PropertyChanged;
...
}
Вы отметили код 'pcl' для' языка управления принтером'. Вы имели в виду «Portable Class Library» вместо этого? – nvoigt
@nvoight - спасибо! – Berryl