Что означают эти исключения и как их избежать или есть дополнительная документация. Я изменяю текстовые блоки, встроенные в обновления связывания (поведение, которое форматирует) внутри сетки данных.
Получение этого исключения из сетки данных с виртуализацией, например, панель виртуализированного стека -> VisualCollection имеет защиту
VisualCollection .cs, из справочного источника:
private void ConnectChild(int index, Visual value)
{
//
// -- Approved By The Core Team --
//
// Do not allow foreign threads to change the tree.
// (This is a noop if this object is not assigned to a Dispatcher.)
//
// We also need to ensure that the tree is homogenous with respect
// to the dispatchers that the elements belong to.
//
_owner.VerifyAccess();
value.VerifyAccess();
// It is invalid to modify the children collection that we
// might be iterating during a property invalidation tree walk.
if (_owner.IsVisualChildrenIterationInProgress)
{
throw new InvalidOperationException(SR.Get(SRID.CannotModifyVisualChildrenDuringTreeWalk));
}
}
Значение флага:
// Are we in the process of iterating the visual children.
// This flag is set during a descendents walk, for property invalidation.
IsVisualChildrenIterationInProgress = 0x00000010
Я имею в виду, что должна быть концепция того, как работать, чтобы избежать этого исключения с элементами управления WPF, либо как парадигма или определенные проверки и код в определенных путях кода ключа, о которых я должен знать. Или куда мне обратиться, чтобы получить такую информацию?
Я клонирую свой вопрос с microsoft forum