A ver si alguien puede ayudarme con este temilla...
Tengo un Model que implementa la interfaz IDataErrorInfo
Tengo una caja de texto Bindada a una propiedad de mi Model, y también un CheckBox.
La idea es la siguiente, si el checkbox está checkado, la caja de texto no puede estar vacía.
Si checko el checkbox a true, y escribo algo en el textbox, y luego lo dejo blanco, ZAS, se lanza el mensaje de error, PERFECTO.
El problema es que.. tengo que escribir algo en el TextBox para que se empiece a realizar la validación.
¿Hay alguna forma desde XAML o respetando el MVVM para poder hacer que se inicie la validación inicialmente?
Os dejo como tengo los controles validados:
<!-- LA IDEA ES QUE AL HACER CHECK EN EL CHECKBOX, AL NO HABERSE ESCRITO NADA EN LA CAJA DE TEXTO, DEBERÍA SALIR YA EL MENSAJE DE ERROR, SIN TENER QUE ESPERAR A ESCRIBIR NADA EN LA CAJA DE TEXTO -->
Código XML:
Ver original
<CheckBox Grid.Column="0" Name="chkSaveTif" IsChecked="{Binding ExifModel.GenerateTiff, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" Content="Guardar Tif Generado" /> <TextBox Grid.Column="1" IsEnabled="{Binding ElementName=chkSaveTif, Path=IsChecked}" Name="txtFileName" Text="{Binding ExifModel.FileName, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}" ToolTip="{Binding ElementName=txtFileName, Path=(Validation.Errors)[0].ErrorContent}" />
Les dejo también la parte del código del Model que realiza la validación.
Código:
public string this[string columnName] { get { string errorResult = string.Empty; switch (columnName) { case "FileName": if (GenerateTiff && string.IsNullOrEmpty(FileName)) errorResult += "Debes indicar un nombre para el archivo a guardar. \r\n El fichero debe tener una extensión .TIF"; if (GenerateTiff && !string.IsNullOrEmpty(FileName) && !FileName.ToLower().EndsWith(".tif")) errorResult += "El fichero debe tener una extensión .TIF"; break; case "GenerateTiff": if (!GenerateTiff) errorResult = string.Empty; break; } return errorResult; } }