我嘗試了一個VS 2010項目中的PCL,我想支持WPF(4及更高版本)和Silverlight(4及更高版本)。下面的MS documentation摘錄令我感到困惑。Portable Model Library中的ViewModel支持
它似乎要說在PCL項目中引用System.Windows,但我不知道該怎麼做。
我必須做什麼才能在我的PCL項目中使用ICommand和INotifyPropertyChanged?
支持視圖模型圖案時,你的目標Silverlight和 的Windows Phone 7,您可以在您的 解決方案視圖模型模式。實現此模式的類位於Silverlight的 System.Windows.dll程序集中。
系統:當你創建一個可移植類庫 項目,目標在本次大會在.NET Framework 4或Xbox 360
,這些類包括以下不支持System.Windows.dll中 組裝。 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框架4也包含這些類,但它們是 實現的 程序集而不是System.Windows.dll。要使用便攜式 類庫項目中使用這些類,必須引用System.Windows.dll中,而不是在 列出的.NET框架4文檔組件
編輯
INotifyPropertyChanged的不可用;下面的代碼將無法編譯
public abstract class ViewModelBase : INotifyPropertyChanged
{
public virtual event PropertyChangedEventHandler PropertyChanged;
...
}
您爲'打印機控制語言'標記了代碼'pcl'。你的意思是「便攜式類庫」嗎? – nvoigt 2013-05-02 14:04:14
@nvoight - 謝謝! – Berryl 2013-05-02 14:37:42