首页 新闻 搜索 专区 学院

实现接口继承问题

0
悬赏园豆:15 [已解决问题] 解决于 2014-04-21 09:05

上午学习Silverlight和MVVM,在双向绑定中有一个问题,就是要实现双向绑定的类必须实现接口INotifyPropertyChanged。我有点疑惑的是在方法中直接写了接口INotifyPropertyChanged的实现方法,不声明继承自接口INotifyPropertyChanged。为什么不可以?

就像下面这不可以,

 public class BaseNotify
    {
        public event PropertyChangedEventHandler PropertyChanged;

        public void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

    }

声明继承后可以

 public class BaseNotify : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        public void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

    }

 

小菜求大神指教。。。

粗线条的主页 粗线条 | 初学一级 | 园豆:196
提问于:2014-04-18 11:27
< >
分享
最佳答案
0

属性改变要让对方知道自然需要一个通知消息出来吧,而INotifyPropertyChanged简单说就相等于一个委托通道,就是负责这个消息的通知,你可以了解下观察者模式

收获园豆:15
andy1987 | 菜鸟二级 |园豆:490 | 2014-04-18 16:13
其他回答(2)
0

这很简单啊,因为调用方通过基类型(INotifyPropertyChanged)来订阅或激发事件。

Launcher | 园豆:45045 (高人七级) | 2014-04-18 11:43

这一块不是很明白,有没有示例的链接或者是教程的发一个。。

支持(0) 反对(0) 粗线条 | 园豆:196 (初学一级) | 2014-04-18 12:12

@粗线条: 你去翻 WPF 的源码吧!

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-04-18 13:15
0

不实现接口INotifyPropertyChanged,其他类怎么知道你实现了INotifyPropertyChanged方法??

PeterQuinn | 园豆:4 (初学一级) | 2014-04-18 12:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册