我有一些基本属性。在幕后,我使用文本值和要受影响的属性的名称填充Lookup
。我有CostUpdated, Cost
,CostUpdated, CostSum
和CostUpdated, TotalSum
。我的期望是我的所有三个Silverlight XAML绑定都应该访问Getters,因此在设置Cost时重新更新文本字段。因此设置了成本,并且应该为所有三个调用Getters。
public decimal Cost {
get {
return _Cost;
}
set {
_Cost = value;
OnPropertyChanged("CostUpdated")
}
}
public decimal CostSum {
get {
return _CostSum;
}
set {
_CostSum = value;
}
}
public decimal TotalSum {
get {
return _TotalSum;
}
set {
_TotalSum = value;
}
}
Lookup<string, string> DependentProperties;
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string property)
{
foreach (var prop in DependentProperties[property])
PropertyChanged(this, new PropertyChangedEventArgs(prop));
}
foreach获取我注册的所有三个值。当我踩过时,所有这三个似乎都会执行,但是&#34; Cost&#34;从未被击中过。我不能进入PropertyChangedEventArgs,因为它的系统代码,但那里的东西取消了执行,并没有抛出异常。其他两个按预期命中。
这是踢球者:如果我关闭Silverlight调试器,它可以正常工作。我们中的一些人知道附加调试器会导致副作用,例如取消无限循环或过度分析。但我不想要只在非调试器世界中运行的代码!!
答案 0 :(得分:0)
如果禁用XAML绑定调试,则问题就消失了。
设置Binding.IsDebuggingEnabled = false;
(例如在您的app.xaml.cs中)
如果没有附加调试器,IsDebuggingEnabled标志将设置为false,因此在没有调试器的情况下运行时不会出现问题。