el-nino
el-nino

Reputation: 399

WPF enable/disable button depending on value

i would like to enable/disable buttons according to the current active userlevel. i have a property in the MV for the current userlevel:

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

how can i enable/disable the button if this value is >=x?

Upvotes: 2

Views: 2316

Answers (1)

Breealzibub
Breealzibub

Reputation: 8095

You'll need to create a property in your ViewModel, for which the Button's IsEnabled property can bind to. Make sure that the new property's PropertyChanged event is raised whenever the CurrentUserLevel is changed.

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

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

And in your XAML:

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

Upvotes: 4

Related Questions