我有一个遵循WPF / MVVM模式的项目。我试图从PropertyChangedBase派生我的ViewModel类,以便我可以通知视图的数据更改。一旦从PropertyChangeBase派生类并编译,我就会收到错误说
错误1无法注册程序集" D:\ Source \ ArcOnline \ bin \ Debug \ ArcOnline.dll"。无法加载文件或程序集' Major,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = null'或其中一个依赖项。系统找不到指定的文件。
这是我的课程定义方式
using ArcOnline.WPF;
using System;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace ArcOnline.ViewModels
{
/// <summary>
/// The class handles the template for a single
/// </summary>
public class TemplatesViewModel : PropertyChangedBase
{
/// <summary>
///
/// </summary>
public ArcOnlineViewModel ArcManager { get; set; }
private string _layerID;
/// <summary>
/// Layer ID
/// </summary>
public string LayerID
{
get { return _layerID; }
set { _layerID = value; NotifyOfPropertyChange(() => LayerID); }
}
private string _title;
/// <summary>
/// Title of the layer
/// </summary>
public string Title
{
get { return _title; }
set { _title = value; NotifyOfPropertyChange(() => Title); }
}
.............如上所述更多属性 }
以下是我的PropertyChangedBase的定义方式
using Component.Linq.Expressions;
using System;
using System.Collections;
using System.ComponentModel;
using System.Linq.Expressions;
using System.Runtime.Serialization;
using System.Xml.Serialization;
#endregion
namespace Component.ComponentModel
{
/// <summary>
/// A base class from which ViewModels can inherit to improve the quality of
/// patterns such as INotifyPropertyChanged.
/// </summary>
[DataContract]
[Serializable]
public class PropertyChangedBase : INotifyPropertyChanged, INotifyDataErrorInfo, IDataErrorInfo
{
/// <summary>
/// Initializes a new instance of the <see cref="PropertyChangedBase"/> class.
/// </summary>
public PropertyChangedBase()
{
ErrorsChanged += Notify_ErrorChanged;
}
void Notify_ErrorChanged(object sender, DataErrorsChangedEventArgs e)
{
NotifyOfPropertyChange(() => Error);
}
...... More class definition continues
}
此PropertyChangedBase实际上是在另一个Project中定义的,这就是它包含所有头文件的原因。如果我复制这个PropertyChangedBase类的代码并在我自己的Project中创建一个新类,其中定义了TemplatesViewModel然后使用它,它就可以正常工作。
我只是想知道它在第一种情况下不起作用的原因是什么?这浪费了我一整天!!
提前致谢