Мы реализуем бизнес-приложение WPF с использованием MVVM. В настоящее время мы пытаемся определить лучший способ показать ошибки проверки для DataGrids. В настоящее время мы пытаемся сделать это так:
1) Пользовательский элемент управления View содержит сетку данных, связанную с объектами EntityCollection Entity Framework, расположенными в связанной ViewModel
2) ViewModel реализует интерфейс IDataErrorInfo. В ViewModel есть обычные свойства, включая свойство для реализации IDataErrorInfo.Item
3) Свойство, которое реализует IDataErrorInfo.Item, вызывает проверку из базовой модели, чтобы определить, есть ли какие-либо проблемы проверки
Это прекрасно работает для любого текстового поля или комбинированного списка в представлении - validatiosn обрабатывается, как и ожидалось. Но с сеткой данных мы находимся в тупике - что бы мы ни пытались, проверка не произойдет. В настоящее время это определяется так:
<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>
Если у кого-нибудь есть указания или рекомендации, мы будем благодарны.
Спасибо