使用PropertyChanged委托提出多个PropertyChanged事件的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PropertyChanged委托提出多个PropertyChanged事件的问题相关的知识,希望对你有一定的参考价值。

我有一个RuleDependency类和两个属性IsNullValueTypeEnabled。我们在UI中使用silverlight,我希望拥有以下功能。当IsNull财产发生变化时,我希望提高第二处房产的PropertyChanged事件:ValueTypeEnabled。请注意,这是一个部分类,作为来自web服务的类的扩展,我在参考中只有IsNull Property,所以我不能在RaisePropertyChangedValueTypeEnabled上设置IsNull Property。我做了以下事情:

 public partial class RuleDependency
    {
        public RuleDependency() {
            PropertyChanged += RuleDependency_PropertyChanged;            
        }

        private void RuleDependency_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "IsNull") {
                this.RaisePropertyChanged("IsNull");
                this.RaisePropertyChanged("ValueTypeEnabled");
            }
        }

        private bool _valueTypeEnabled;


        public bool ValueTypeEnabled
        {
            get {
                return  (IsNull == null || !IsNull.Value)
            }
        }
    }

由于未知原因,修改IsNull property不会引发ValueTypeEnabled财产的事件。

答案

问题是该部分类中的构造函数未被调用,因此该函数不会绑定到eventhandler。我修好了加上这个

dependencies[i].PropertyChanged += dependencies[i].RuleDependency_PropertyChanged;

使用对象时。

以上是关于使用PropertyChanged委托提出多个PropertyChanged事件的问题的主要内容,如果未能解决你的问题,请参考以下文章

Github Pull Request的提出与采纳

在 C# 中使用弱处理程序引发 PropertyChanged 事件时发生 ExecutionEngineException

如何在不使用字符串名称的情况下引发 PropertyChanged 事件

WPF开发进阶 - Fody/PropertyChanged

PropertyChanged 事件始终为空

当 github PR 提出时触发 jenkins 构建