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));
}
}