locked
new PropertyChangedEventArgs("Address")参数问题 RRS feed

  • 问题

  • 小弟最近在看WP7开发视频,里面有一个查询邮编和地址的例子,其中用到了数据绑定,在监听相关textbox内容改变时用到了new PropertyChangedEventArgs("Address")方法,可是不明白为什么Adress要加上引号呢,Address本身不就是PostcodeClass内的一个成员吗

    附上相关代码(问题可能有点幼稚,本人初学者,望见谅)

    namespace PostcodeApplication
    {
        public class PostcodeClass : INotifyPropertyChanged
        {

            public event PropertyChangedEventHandler PropertyChanged;
            private int postcode;
            public int Postcode
            {
                get
                {
                    return postcode;
                }
                set
                {
                    postcode = value;
                    address = PostcodeQuery.Instance.GetAddressByPostcode(postcode);
                    if (PropertyChanged != null)
                    {
                        //Address要加引号,谁能告诉我为什么
                        PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Address"));
                    }
                }
            }
            private string address = "没找到";
            public string Address
            {
                get
                {
                    return address;
                }
                set
                {
                    address = value;
                }
            }
        }
    }

    2012年2月25日 14:55

答案

  • 可以这样理解 PropertyChangedEventArgs是传给其它类(假设是类A)进行调用的,那么PropertyChangedEventArgs如何去记录本类的Address属性呢,这时只能是先记录着“Address"这个字符串,当类A需要访问这个属性时,通过"Address"字符串去访问这个属性。 这里有个什么好处呢,就是这个类A不用知道这个属性以后可能是什么类型的(有可能是各种类型的),所以减少了耦合。 如果还有什么其它问题 ,可以到 卤面网交流 wp7开发论坛,wp7 技术交流QQ群 172765887
    • 已建议为答案 Otomii Lu 2012年2月27日 8:18
    • 已标记为答案 微风7 2012年2月28日 4:54
    2012年2月27日 7:52

全部回复

  • 因为这套机制是通过字符串找到Address这个依赖属性的。用起来确实有点奇怪。
    2012年2月25日 23:42
  • 可以这样理解 PropertyChangedEventArgs是传给其它类(假设是类A)进行调用的,那么PropertyChangedEventArgs如何去记录本类的Address属性呢,这时只能是先记录着“Address"这个字符串,当类A需要访问这个属性时,通过"Address"字符串去访问这个属性。 这里有个什么好处呢,就是这个类A不用知道这个属性以后可能是什么类型的(有可能是各种类型的),所以减少了耦合。 如果还有什么其它问题 ,可以到 卤面网交流 wp7开发论坛,wp7 技术交流QQ群 172765887
    • 已建议为答案 Otomii Lu 2012年2月27日 8:18
    • 已标记为答案 微风7 2012年2月28日 4:54
    2012年2月27日 7:52