Как избежать, чтобы свойство [[Unknown] 'не указывало на DependencyObject in path' (0). (1) [1]. (2) 'исключение в wpf - PullRequest
4 голосов
/ 11 декабря 2011

При нажатии кнопки, Обновление коллекции ListBox ItemsSource. Для 4 или 5 щелчков работает нормально, но затем выдает исключение, поскольку свойство [Unknown] не указывает на DependencyObject в пути '(0). (1) [1]. (2)'

Я гуглил это и нашел причину для этого.

"ElementControl переопределяет PrepareContainerForItemOverride и вызывает PrepareModel для вставки сетки в _modelContainer для каждого Вещь. Позже в ElementFlow.BuildTargetPropertyPath (который называется через ElementFlow.SelectItemCore -> LayoutBase.SelectElement -> ElementFlow.PrepareTemplateStoryboard) предполагается, что такая сетка был вставлен в _modelContainer. Это исключение возникает, когда Сетка не была вставлена ​​в _modelContainer. WPF звонки PrepareContainerForItemOverride для ApplyTemplate. Это только сделано один раз. Элементы, добавленные позже, никогда не обрабатываются таким образом. «

Поэтому, пожалуйста, дайте мне решение, чтобы преодолеть его.

1 Ответ

1 голос
/ 05 июля 2013

Похоже, что, возможно, в вашей «коллекции источников элементов» есть элемент неправильного типа или не содержащий одно из свойств, которое ищет шаблон элементов списка. Или, возможно, если у вас есть разные классы в вашей коллекции, у одного из них может не быть свойства, которое вы ищете как DependencyProperty. Если это просто обычное свойство, оно может работать некорректно.

Проверьте все типы объектов, которые входят в вашу коллекцию источников элементов, и убедитесь, что у них всех есть свойства DependencyProperties с именами, которые ищет шаблон элементов.

...