Я разрабатываю приложение в WPF с использованием MVVM, но я застрял с объектами ICommand.
У меня есть окна, содержащие некоторые кнопки, поэтому я привязываю их к своей соответствующей ICommand в XAML, как показано ниже:
<Button Command="{Binding DoSomethingCommand}" Content="Do Something" />
Тогда, в моем классе модели представления я написал следующее:
public class MyViewModel : ObservableObject
{
private bool isDoSomethingButtonEnabled = false;
....
public ICommand DoSomethingCommand
{
get;
private set;
}
....
....
public MyViewModel()
{
DoSomethingCommand = new DelegateCommand<String>(this.OnDoSomething, this.CanDoSomething);
}
private void OnDoSomething(String arg)
{
}
private bool CanDoSomething(String arg)
{
return isDoSomethingButtonEnabled;
}
....
}
Итак, поскольку мне нужно, чтобы моя кнопка не была включена при первом открытии окна, я установил свою переменную isDoSomethingButtonEnabled
в false
. И это работает, кнопка отключена в начале, но моя проблема в том, что когда я меняю переменную isDoSomethingButtonEnabled
на true
во время выполнения, моя кнопка все еще отключена.
Я даже сделал некоторые тесты после изменения переменной isDoSomethingButtonEnabled
до true
, распечатывая результат DoSomethingCommand.CanExecute()
, и он показывает "true"!
Итак, что мне делать, чтобы включить мою кнопку?
Заранее благодарю