KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to get WPF validation to work within the MVVM pattern. In my View, I can validate a TextBox like this which gets handled by the code-behind method "HandleError", which works fine: <TextBox Width="200" Validation.Error="HandleError"> <TextBox.Text> <Binding Path="FirstName" NotifyOnValidationError="True" Mode="TwoWay"> <Binding.ValidationRules> <validators:DataTypeLineIsValid/> </Binding.ValidationRules> </Binding> </TextBox.Text> </TextBox> However, I would like to handle the validation in my ViewModel via a DelegateCommand but when I try it with the following code, I get the explicit error " '{Binding HandleErrorCommand}' is not a valid event handler method name. Only instance methods on the generated or code-behind class are valid. " Are there any workaround for this so that we can handle validations within a MVVM pattern? View: <TextBox Width="200" Validation.Error="{Binding HandleErrorCommand}"> <TextBox.Text> <Binding Path="FirstName" NotifyOnValidationError="True" Mode="TwoWay"> <Binding.ValidationRules> <validators:DataTypeLineIsValid/> </Binding.ValidationRules> </Binding> </TextBox.Text> </TextBox> ViewModel: #region DelegateCommand: HandleError private DelegateCommand handleErrorCommand; public ICommand HandleErrorCommand { get { if (handleErrorCommand == null) { handleErrorCommand = new DelegateCommand(HandleError, CanHandleError); } return handleErrorCommand; } } private void HandleError() { MessageBox.Show("in view model");
Tags (comma-separated)
Save Edits
Cancel