здесь более сложный способ (способ WPF) - привязать команду к кнопке.
<Button Name="button1" VerticalAlignment="Top" Width="94" Command="{Binding MyCommand}"
в ViewModel, которая связана с dataContext представления:
public ICommand MyCommand
{
get
{
return new DelegateCommand<string>(ExecuteSomething,IsExecutable);
}
}
здесь ExecuteSomething метод, который будет выполнен нажатием вашей кнопки IsExecutable - perdicate, когда он возвращает false, кнопка будет отключена