Ich probiere die PCL in einem VS 2010-Projekt aus, in dem ich WPF (4 und höher) und Silverlight (4 und höher) unterstützen möchte. Der unten stehende Auszug aus MS documentation ist für mich verwirrend.ViewModel-Unterstützung in der Portable Class-Bibliothek
Es scheint zu sagen, System.Windows im PCL-Projekt zu verweisen, aber ich sehe nicht, wie man das macht.
Was muss ich tun, um ICommand und INotifyPropertyChanged in meinem PCL-Projekt zu haben?
Unterstützung der Ansicht Modell Pattern Wenn Sie Silverlight und Windows Phone Ziel 7, können Sie die Ansicht Modellmuster in Ihrer Lösung implementieren. Die Klassen zum Implementieren dieses Musters befinden sich in der System.Windows.dll-Assembly von Silverlight. Die System.Windows.dll Montage wird nicht unterstützt, wenn Sie eine Portable Klassenbibliothek Projekt erstellen, das die .NET Framework 4 oder Xbox 360.
Die Klassen in dieser Versammlung Ziele sind die folgenden:
-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 enthält auch diese Klassen, aber sie sind implementiert in Assemblys außer System.Windows.dll. Um diese Klassen mit einem Portable Klassen Bibliotheksprojekt zu verwenden, müssen Sie System.Windows.dll verweisen und nicht die aufgeführten Baugruppen in das .NET Framework 4 Dokumentation
EDIT
INotifyPropertyChanged nicht verfügbar ist; der folgende Code kompiliert nicht
public abstract class ViewModelBase : INotifyPropertyChanged
{
public virtual event PropertyChangedEventHandler PropertyChanged;
...
}
Sie haben den Code 'pcl' für' Printer control language' markiert. Meinst du "Portable Class Library"? – nvoigt
@nvoight - danke! – Berryl