在silverlight中使用来自wcf服务的类 - notifypropertychanged不起作用

时间:2011-10-21 07:35:38

标签: c# silverlight wcf inotifypropertychanged

我在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方法。

我做错了什么? 谢谢

1 个答案:

答案 0 :(得分:0)

如果您使用 RIA WCF服务(我必须从您的问题中假设),那么您的客户端版本的Autoturism对象将只包含您的属性,而不是代码服务方面的课程。

基本上,RIA Services为客户端创建仅具有相同“形状”(但不是代码)的代理对象。

要完全共享代码和数据,您需要将它们作为.shared.cs类。然后将完整的源代码复制到您的客户端项目中。