У меня есть проект, содержащий DataGrid, для которого я реализовал удобный интерфейс сортировки и фильтрации.На самом деле это так удобно, что я извлек соответствующий код в UserControl, который я встроил в тестовый проект.Я добавил DependencyProperties для элементов управления DataGrid, которые я хочу сделать доступными для потребителя UserControl.Пока все хорошо.
Проблема началась, когда я установил свойство DataGrid IsReadOnly = "False".В этот момент любая операция на его ItemsSource вызывает исключение.
DataGrid в исходном проекте полностью удовлетворен IsReadOnly = "False", а UserControl работает нормально с IsReadOnly = "True".В отладчике (VS 2017) все правильно введено и все данные соответствуют ожиданиям.
Одна ошибка происходит с кодом ниже
this.Xrefs.Cast<ProductXref>().ToList()
, где
public ICollectionView Xrefs { get; set; }
устанавливается из моего ItemsSource DependencyProperty.
В других местах я получаю исключение Object does not match target type
.Является ли VS обертыванием коллекции ItemsSource - это еще один объект, но только когда DataGrid находится в UserControl и настроен не только для чтения?
Я ценю, что могу оставить DataGrid только для чтения и использовать дочернюю форму для редактирования строки,но я предпочитаю редактирование на месте, если это возможно.