我有一个实现 Inotifypropertychanged 的类。我也有这个属性,我注释掉了通知。
private Color _CoolColor =Colors.Purple;
public Color CoolColor
{
get
{
return _CoolColor;
}
set
{
if (value != _CoolColor)
{
_CoolColor = (Color)value;
//OnPropertyChanged("CoolColor");
}
}
}
我的 xaml 中的绑定附加到此属性:
BusTextColor="{Binding Path=CoolColor}"
/// <summary>
/// Color used for the text containing the hex value of the bus
/// </summary>
public Color BusTextColor
{
get
{
return (Color)GetValue(BusTextColorProperty);
}
set
{
SetValue(BusTextColorProperty, value);
}
}
public static readonly DependencyProperty BusTextColorProperty =
DependencyProperty.Register("BusTextColor",
typeof(Color), typeof(SignalGraph),
new FrameworkPropertyMetadata(new Color(), new PropertyChangedCallback(CreateBrushesAndReDraw)));
我只绑定了这个,因为我想确保我没有发疯,但我一定发疯了,因为当 CoolColor 更改时,我的 BusTextColor 正在更新。有人请让它停止工作。
我这样做只是因为我拥有的另一个依赖属性没有正确绑定到我的视图模型。我知道这可能有一些明显的原因,但我肯定错过了。
编辑:那篇文章很有趣。但在我的情况下,我实现了 Inotifypropertychanged 接口,我只是不引发事件 OnPropertyChanged。我意识到我也应该发布它。
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}