0

こんにちは、シルバーライトで Windows 8 メトロ アプリの構築に取り組んでいます。

Control1 と Control2 の 2 つのコントロールがあります。

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}"/>

ボタンを無効にしませんでした。ボタンを無効にするにはどうすればよいですか。何か案が?

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 に答える