我使用名为Active:
的DependencyProperty创建了一个名为BilLister的usercontrol<cbtn:BillLister
x:Name="euro500"
Active="true" />
<cbtn:BillLister
x:Name="euro200"
Active="false" />
但它没有按预期工作。
来自组件:
public bool Active
{
get { return (bool)GetValue(ActiveProperty); }
set {
SetValue(ActiveProperty, value);
}
}
public static readonly DependencyProperty ActiveProperty =
DependencyProperty.Register("Active", typeof(bool),
typeof(BillLister), new PropertyMetadata((bool)false,
new PropertyChangedCallback(OnSomeValuePropertyChanged)));
在调用的函数中我把它放在:
private static void OnSomeValuePropertyChanged(
DependencyObject target, DependencyPropertyChangedEventArgs e)
{
BillLister numericBox = target as BillLister;
switch (e.Property.ToString())
{
case "Active":
if ((bool)e.NewValue == true)
numericBox.CurrencyImage.Opacity = 1;
else
numericBox.CurrencyImage.Opacity = 0.50;
break;
}
}
但是,e.NewValue始终返回true。我还把其他项放在开关中,这些项被正确处理,但似乎布尔值没有被正确传递。
有谁知道为什么它总是传递真实?我会期待一个错误,至少是因为我正在通过我注册依赖属性的错误。
谢谢!