使用PropertyChanged委托提出多个PropertyChanged事件的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PropertyChanged委托提出多个PropertyChanged事件的问题相关的知识,希望对你有一定的参考价值。
我有一个RuleDependency类和两个属性IsNull
和ValueTypeEnabled
。我们在UI中使用silverlight,我希望拥有以下功能。当IsNull
财产发生变化时,我希望提高第二处房产的PropertyChanged
事件:ValueTypeEnabled
。请注意,这是一个部分类,作为来自web服务的类的扩展,我在参考中只有IsNull
Property
,所以我不能在RaisePropertyChanged
的ValueTypeEnabled
上设置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事件的问题的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中使用弱处理程序引发 PropertyChanged 事件时发生 ExecutionEngineException
如何在不使用字符串名称的情况下引发 PropertyChanged 事件