CannotModifyVisualChildrenDuringTreeWalk - PullRequest
       0

CannotModifyVisualChildrenDuringTreeWalk

0 голосов
/ 14 февраля 2020

Что означают эти исключения и как их избежать или есть дополнительная документация. Я изменяю текстовые блоки, встроенные в обновления связывания (поведение, которое форматирует) внутри сетки данных.

Получение этого исключения из сетки данных с виртуализацией, например, панель виртуализированного стека -> 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...