J'ai une forme WPF avec 3 boutons et ont acheminé des événements sur eux, les commandes sont binded au démarrage ...WPF Déroulement des événements routés?
private void InitCommandBinding(UIElement frameworkElement) {
CommandBinding commandBinding;
commandBinding = new CommandBinding(ViewModelCommands.Save, Save_Executed, Save_CanExecute);
frameworkElement.CommandBindings.Add(commandBinding);
commandBinding = new CommandBinding(ViewModelCommands.SaveAndClose, SaveAndClose_Executed, SaveAndClose_CanExecute);
frameworkElement.CommandBindings.Add(commandBinding);
commandBinding = new CommandBinding(ViewModelCommands.Delete, Delete_Executed, Delete_CanExecute);
frameworkElement.CommandBindings.Add(commandBinding);
}
the details ui has code like
private void Delete_Executed(object sender, ExecutedRoutedEventArgs e) {
try
{do validations }
}
private void Delete_CanExecute(object sender, CanExecuteRoutedEventArgs e) {
e.CanExecute = viewModel.IsValid(); (returns bool)
}
Validité permet d'activer et de désactiver les boutons etc.
La forme a une instance d'un objet neuf ou ancien et lieu sur la validation des données
Mon problème est que l'événement vient excute tout le temps et la forme pend juste cause du code de validation ne sondage db etc pour vérifier ....
comment Je les ai juste à tirer une fois quand le formulaire est chargé mmm ....
merci pour l'avance, je suppose que le CanExute se déclenche beaucoup et j'ai un code de validation comme vérifier si le code existe dans db etc qui interrogent le db.Les services de cadre de validation gérer cela, mais les problèmes de niveau ui ont surgi ... – abmv
-on répond. CanExecute doit être rapide. Vérifier la base de données, cliquer sur un service web, etc. n'est pas une bonne idée ici. Vous ne devez vérifier la base de données que lorsque l'utilisateur est prêt à valider ses modifications. –