VS2012 Pro, .NET 4.5 WPF Dobrý den, v projektu mám objekt(INotifiPropertyChanged) s bool vlastností Value ta se mění (dle připojeného zařízení). Při každé změně vyvolá událost PropertyChanged (ověřeno v debug). Pokud na ToggleButton a jeho vlastnost IsChecked nabinduji tento objekt s vlastnost Value. Tak se stisknutí togglebuttonu mění správně, podle vlastnosti Value (OK). Naspal jsem si jednoduchý control "Lamp" děděný od Image s bool vlastností LampStatus a naprosto shodným způsobem jsem nabindoval tento control. Vlastnost LampStatus se, ale nechce měnit. Pokud ji měním bez bindování, z kódu tak control pracuje jak má. Věděl by někdo kde dělám chybu ?
public class Lamp : System.Windows.Controls.Image
{
public static DependencyProperty ImageOnDependencyProperty = DependencyProperty.Register("ImageOn",
typeof(ImageSource),
typeof(Lamp),
new PropertyMetadata(null));
[Category("Images")]
public ImageSource ImageOn
{
get { return (ImageSource)GetValue(ImageOnDependencyProperty); }
set { SetValue(ImageOnDependencyProperty, value); }
}
public static DependencyProperty ImageOffDependencyProperty = DependencyProperty.Register("ImageOff",
typeof(ImageSource),
typeof(Lamp),
new PropertyMetadata(null));
[Category("Images")]
public ImageSource ImageOff
{
get { return (ImageSource)GetValue(ImageOffDependencyProperty); }
set { SetValue(ImageOffDependencyProperty, value); }
}
public static DependencyProperty LampStatusDependencyProperty = DependencyProperty.Register("LampStatus",
typeof(bool),
typeof(Lamp),
new PropertyMetadata(null));
[Category("Control")]
public bool LampStatus
{
get { return (bool)GetValue(LampStatusDependencyProperty); }
set
{
Source = value ? ImageOn : ImageOff;
SetValue(LampStatusDependencyProperty, value);
}
}
}
|