禁用另一个控件中一个控件的按钮

时间:2012-04-20 11:42:10

标签: silverlight windows-phone-7.1 windows-8

您好我正在使用Silverlight中的Win 8 metro应用程序。

我有两个控件Control1和Control2

Control2在Control1内部

Control2有一个列表视图,Control1有按钮。单击列表视图必须禁用Control1中的按钮。

我试图通过使用

从代码中实现这一点
 public bool OverriddenFlag
{
    get { return _overriddenFlag; }
    set
    {
        _overriddenFlag= value;
        NotifyPropertyChanged("OverriddenFlag");
    }
}

和xaml

<Button x:Name="ShowDetails" FontWeight="bold" FontSize="12" Content="+" click="ShowDetails_Click" IsEnabled="{Binding OverriddenFlag, Mode=OneWay}"/>

但它没有禁用该按钮。 如何禁用按钮。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

OverridenFlag应该是Control2中的依赖属性,如下所示:

    public static readonly DependencyProperty OverriddenFlagProperty = DependencyProperty.Register("OverriddenFlag",
        typeof(bool), typeof(Control2), null);

    public bool OverriddenFlagProperty
    {
        get { return (bool)GetValue(OverriddenFlagProperty); }
        set
        {
            SetValue(OverriddenFlagProperty, value);
        }
    }

然后尝试将绑定修改为:

<Button x:Name="ShowDetails"  IsEnabled="{Binding OverriddenFlag, ElementName=Control2}"/>