Nous implémentons une application métier WPF utilisant MVVM. Actuellement, nous essayons de déterminer la meilleure façon d'afficher les erreurs de validation pour DataGrids. À l'heure actuelle, nous essayons de le faire comme ceci:WPF DataGrid - Recommandations de validation
1) Une commande de vue de l'utilisateur contient un DataGrid lié à un EntityCollection d'objets Entity Framework situés dans le ViewModel
2) associée ViewModel implments l'interface IDataErrorInfo. Dans le ViewModel il y a les propriétés normales, y compris une propriété pour la mise en œuvre IDataErrorInfo.Item
3) La propriété qui met en œuvre IDataErrorInfo.Item appelle la validation du modèle sous-jacent afin de déterminer s'il y a des problèmes de validation
Cela fonctionne bien pour toute zone de texte ou zone de liste déroulante sur la vue - validatiosn sont en cours de traitement comme prévu. Mais avec le DataGrid nous sommes perturbés - peu importe ce que nous avons essayé, la validation ne se fera pas. Actuellement, il est défini comme ceci:
<DataGrid x:Name="dgWikiNames" ItemsSource="{Binding Wiki_Names, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnSourceUpdated=True}" AutoGenerateColumns="False">
<DataGrid.RowValidationRules>
<DataErrorValidationRule ValidationStep="UpdatedValue"/>
</DataGrid.RowValidationRules>
<DataGrid.Columns>
<DataGridTextColumn Header="First Name">
<DataGridTextColumn.Binding>
<Binding Path="First_Name" ValidatesOnDataErrors="True">
<Binding.ValidationRules>
<DataErrorValidationRule/>
<!--<local:CellDataInfoValidationRule ValidationStep="UpdatedValue"/>-->
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
<DataGridTextColumn Header="Is Primary" Binding="{Binding Primary_Flag}"/>
</DataGrid.Columns>
</DataGrid>
Si quelqu'un a des pointeurs ou des recommandations, nous l'apprécierions. Merci