我有一个RuleDependency类和两个属性double tipPercent = Convert.ToDouble(Console.ReadLine());
和IsNull
。
我们在UI中使用silverlight,我希望拥有以下功能。
当ValueTypeEnabled
属性发生更改时,我希望为第二个属性IsNull
引发PropertyChanged
事件。请注意,这是一个部分类,作为来自Web服务的类的扩展,我在引用中只有ValueTypeEnabled
IsNull
,所以我Property
不能RaisePropertyChanged
在ValueTypeEnabled
的setter上。
我做了以下事情:
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
属性的事件。
答案 0 :(得分:0)
问题是没有调用此分部类中的构造函数,因此该函数不会绑定到eventhandler。我修复了这个
dependencies[i].PropertyChanged += dependencies[i].RuleDependency_PropertyChanged;
使用对象时。