Я нахожусь в интересной ситуации, когда на холсте нарисована геометрия. В этой ситуации у меня есть PatternVisual, созданный DataTemplate. У PatternVisual есть DataContext of Pattern. У шаблона есть свойство Position. Позиция имеет тип Point2d, который является неизменной структурой, содержащей два свойства, X и Y.
То, что я пытаюсь сделать, это установить свойства Canvas.Top и Canvas.Left в моем PatternVisual, указанном в DataTemplate, равными {Binding Position.Y} и {Binding Position.X} и заставить их запускать обновления, когда Position это сам меняется.
Единственный способ, которым я до сих пор занимался, это использовать конвертер для "поиска" X и Y, что мне кажется неправильным.