布尔值DependencyProperty无法正常工作的问题

时间:2015-04-15 14:34:13

标签: c# wpf xaml dependency-properties

我使用名为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。我还把其他项放在开关中,这些项被正确处理,但似乎布尔值没有被正确传递。

有谁知道为什么它总是传递真实?我会期待一个错误,至少是因为我正在通过我注册依赖属性的错误。

谢谢!

0 个答案:

没有答案