У меня есть редактируемая сетка, которая привязывается к коллекции GridRow
(пользовательский класс, описанные строки для сетки). GridRow
имеет свойство Parameter
(int)
, которое должно быть отредактировано пользователем. Простая проверка достоверности: я не могу вставить в это поле что-то вроде «текста» или чего-то еще. Но мне нужна проверка на всей сетке. В столбце Parameter
на сетке может быть только один символ '1', два '2', три '3', два '5'. Так, например, если я уже вставляю в значения сетки «1,2,3», и я пытаюсь вставить «1», приложение должно показать мне подтверждение. Я пытаюсь сделать это с помощью IDataErrorInfo
, но я не могу попасть в сеттерную таблицу целиком.Проверка сетки WPF
1
A
ответ
1
Я исправил свою проблему с подпиской на мероприятие CellVaildate.
1
Возможно, вам будет интересна статья в блоге, которую я имею о validating business rules in MVVM?
Это позволяет прикрепить код проверки модели из ViewModel и позволить вам выполнить то, что вы пытаетесь сделать.
public class GridViewModel
{
// Kept this generic to reduce code here, but it
// should be a full property with PropertyChange notification
public ObservableCollection<GridRowModel> GridRows{ get; set; }
public UsersViewModel()
{
GridRows = GetGridRows();
// Add the validation delegate to the UserModels
foreach(var row in GridRows)
user.AddValidationErrorDelegate(ValidateGridRow);
}
// User Validation Delegate to verify UserName is unique
private string ValidateGridRow(object sender, string propertyName)
{
if (propertyName == "Parameter")
{
var row = (GridRow)sender;
var existingCount = GridRows.Count(p =>
p.Parameter == row.Parameter && p != row);
switch(row.Parameter)
{
case 1:
if (existingCount >= 0)
return string.Format("{0}s are already taken", row.Parameter);
case 2: case 5:
if (existingCount >= 1)
return string.Format("{0}s are already taken", row.Parameter);
case 3:
if (existingCount >= 2)
return string.Format("{0}s are already taken", row.Parameter);
}
}
return null;
}
}
Смежные вопросы
- 1. Xceed WPF Propertygrid: проверка полей свойств сетки
- 2. Проверка сетки 2D-сетки
- 3. Проверка сетки
- 4. Сетки сетки в WPF ListView
- 5. Проверка содержимого сетки ExtJS
- 6. Проверка проходимости сетки
- 7. Проверка установленной версии сетки сетки dot
- 8. Ошибка обновления сетки WPF
- 9. WPF значительная таблица сетки
- 10. WPF Размер сетки
- 11. Проектирование сетки wpf
- 12. Продолжить изменение сетки WPF
- 13. Печать сетки WPF обрезана
- 14. Проблема форматирования сетки WPF.
- 15. Запись WPF-сетки
- 16. WPF - свертывающиеся ячейки сетки
- 17. проект WPF с Сетки
- 18. wpf интеллектуальная схема сетки
- 19. WPF Пользовательские управления сетки
- 20. Создание сетки свойств WPF?
- 21. Сетки с ViewModels - WPF
- 22. Проверка вставки сетки для дубликатов
- 23. проверка флажков в виде сетки
- 24. WPF сетки Показать/скрыть колонки
- 25. Скрыть столбец в WPF сетки
- 26. WPF сетки и DataGrid проклейки
- 27. WPF Окно с 3 сетки
- 28. WPF сетки и свернутый Content
- 29. Выравнивание столбцов без сетки WPF
- 30. WPF ScrollViewer в столбце сетки