Почему PathGeometry не обновляет значения точек, которые там приходят в стороне. если он там глубоко в свойствах имеет ссылку на коллекцию?

PathGeometry представляет собой объект, который содержит информацию о геометрической фигуре, представленной путем последовательности точек, линий и дуг. Вместо того, чтобы хранить непосредственно точки и другие геометрические данные, PathGeometry хранит ссылки на коллекции, такие как PointCollection для точек, которые определяют границы фигуры.

Когда мы добавляем, удаляем или изменяем точки в этой коллекции, PathGeometry не получает немедленного уведомления об изменениях. Он просто ссылается на эту коллекцию и использует ее данные для отображения геометрии.

Поэтому, чтобы обновить значения точек в PathGeometry, нам нужно напрямую изменить коллекцию, на которую он ссылается. Например, если у нас есть PathGeometry с PointCollection, мы можем добавить новую точку, удалив старую или изменить координаты существующей точки, изменяя PointCollection.

Вот пример кода, который показывает, как обновить точки в PathGeometry:

// Создаем новую точку
Point newPoint = new Point(100, 100);

// Получаем ссылку на коллекцию точек в PathGeometry
PointCollection points = pathGeometry.Figures[0].Segments[0] as PointCollection;

// Добавляем новую точку в коллекцию
points.Add(newPoint);

// Теперь PathGeometry будет отображать обновленную фигуру с новой точкой

Это позволяет нам динамически изменять форму и положение фигуры, представленной в PathGeometry, путем изменения коллекции точек.

Стоит отметить, что для обновления фигуры на экране после изменения PathGeometry требуется перерисовка. В WPF или UWP это можно сделать, вызывая метод InvalidateVisual() у элемента управления, содержащего PathGeometry.