WPF启用/禁用按钮取决于值

时间:2014-07-17 13:46:57

标签: button

我想根据当前活动的用户级别启用/禁用按钮。我在MV中有一个当前用户级别的属性:

public int CurrentUserLevel
    {
        get { return _CurrentUserLevel; }
        set
        {
            if (_CurrentUserLevel == value)
                return;
            _CurrentUserLevel = value;
            RaisePropertyChanged("CurrentUserLevel");
        }
    }

如果此值为> = x?

,如何启用/禁用按钮?

1 个答案:

答案 0 :(得分:2)

您需要在ViewModel中创建一个属性,Button的IsEnabled属性可以绑定到该属性。确保在PropertyChanged发生更改时引发新属性的CurrentUserLevel事件。

public int CurrentUserLevel
{
    get { /*...*/ }
    set
    {
        /*...*/
        RaisePropertyChanged("CurrentUserLevel");
        RaisePropertyChanged("IsAllowedToDoSomething"); //dependant property
    } 
}

public bool IsAllowedToDoSomething
{
    get { return CurrentUserLevel > 1; }
}

在你的XAML中:

<Button IsEnabled="{Binding IsAllowedToDoSomething}" Content="Click me!" />