Ich bin neu in der Verwendung von Befehlen und versuchte die CanExecute zu aktivieren und deaktivieren Sie meine Tasten abhängig von einigen Faktoren. Aber ich mache etwas falsch und finde es nicht heraus. Beim Laden funktioniert es gut. Die CanExecuteGenerate-Funktion wird ausgelöst, das Modell ist null und gibt daher false zurück. Schaltfläche auf der Benutzeroberfläche ist deaktiviert. Aber von da an trifft es nie wieder die CanExecuteGenerate, was dazu führt, dass meine Schaltfläche deaktiviert bleibt. Kann jemand sehen, was ich vermisse oder falsch mache?MVVM Light RelayCommand funktioniert nicht
public class MainWindowViewModel: PropertyChangedNotification{
public RelayCommand GenerateCommand { get; set; }
public MainWindowViewModel() {
GenerateCommand = new RelayCommand(OnGenerateClicked, CanExecuteGenerate());
Model = new MainModel();
}
private Func<bool> CanExecuteGenerate() {
if(Model != null) {
return () => (Model.Name != "" && Model.Title != "") ? true : false;
}
return () => false;
}
public void someothermethod(){
Model.Name = "James"
Model.Title = "Doctor"
GenerateCommand.RaiseCanExecuteChanged();
}
public void OnGenerateClicked(){
//Do some other stuff
}
}
Danke, froh zu sehen, dass ich auf dem richtigen Weg war, ist es, weil ich verschiedene RelayCommand Klassen ausprobierte ich vergaß, es zu einer Methode zu ändern. – user1702369