我在wcf服务中定义了以下类
public class Autoturism : INotifyPropertyChanged
{
private int _AutoturismID;
public int AutoturismID
{ get { return _AutoturismID; } set { _AutoturismID = value; NotifyPropertyChanged("AutoturismID"); } }
private string _NumarAutoturism;
public string NumarAutoturism
{ get { return _NumarAutoturism; } set { _NumarAutoturism = value; NotifyPropertyChanged("NumarAutoturism"); } }
public bool IsDirty { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String info)
{
IsDirty = true;
if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(info));
}
我想使用IsDirty值来检查对象是否需要保存在数据库中。
在银色页面中,我有以下几行:
AutoCurent = new Autoturism();
AutoCurent.NumarAutoturism="13424";
我的问题是,在最后一行之后,我期待IsDirty = true,但它仍然是假的。我认为来自服务引用的Auoturism类不再具有NotifyPropertyChanged方法。
我做错了什么? 谢谢
答案 0 :(得分:0)
如果您使用 RIA WCF服务(我必须从您的问题中假设),那么您的客户端版本的Autoturism对象将只包含您的属性,而不是代码服务方面的课程。
基本上,RIA Services为客户端创建仅具有相同“形状”(但不是代码)的代理对象。
要完全共享代码和数据,您需要将它们作为.shared.cs类。然后将完整的源代码复制到您的客户端项目中。