когда я дважды щелкаю - или щелчок однажды, когда его уже сфокусированный - ниже объектов в пустой области Поля списка, которое является в моем DataGridTemplateColumn затем, я получаю вышеупомянутое сообщение об ошибке.
ЧТО делает меня неправильно?
Это - мой Код:
Отношение, которые отображают, где я нажимаю ниже "myPhotos.png" записи объекта:
(источник: 666kb.com)
Править: эта ошибка также уже видима в XAML с помощью подсказки, просто не видели ту ошибочную подсказку...
Это действительно похоже на ошибку. Я запустил ваш проект воспроизведения и проверил стек вызовов при возникновении исключения. Это происходит в DataGridCell.RemoveBindingExpressions во время вызова VisualTreeHelper.IsAncestorOf. Последний метод вызывает исключение, когда ему передается объект, не являющийся Visual или Visual3D. Но DataGridCell передает ему любой элемент, являющийся целью привязки. В вашем случае это Run, который не является производным от Visual.
Я подумал, что вы могли бы обойти это, используя IValueConverter для создания FlowDocument и привязав RichTextBox.Document, чтобы привязка применялась к RichTextBox. Но поскольку Document не является свойством зависимости, он не может быть целью привязки.
Вместо этого вы, возможно, захотите создать UserControl, в котором размещен элемент управления RichTextBox:
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Local:HomeworkControl Text="{Binding Homework}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
Затем в этом пользовательском элементе управления вы позаботитесь о создании RichTextBox, документа, запуска и т. Д. К сожалению, я думаю, что это просто ограничение (также известное как ошибка) в элементе управления DataGrid.