0

嗨,我正在开发 Silverlight 中的 Win 8 Metro 应用程序。

我有两个控件 Control1 和 Control2

Control2 在 Control1 内

Control2 有一个列表视图,而 Control1 有按钮。单击 listview 必须禁用 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}"/>

但它并没有禁用该按钮。如何禁用按钮。任何想法?

4

1 回答 1

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}"/> 
于 2012-04-20T15:30:49.587 回答