Не найдено событие перемещения или перерисовки в классе FrameworkElement. И гугл тоже не помогает. Итак ...
У меня есть собственный ItemsControl, заполненный наблюдаемой коллекцией в виртуальной машине. ItemsControl сам по себе использует
<i:Interaction.Behaviors>
<ei:MouseDragElementBehavior ConstrainToParentBounds="True"/>
</i:Interaction.Behaviors>
поведение, чтобы пользователь мог перетаскивать всю сборку.
Когда пользователь перемещает сборку, я хочу получать уведомления от каждого элемента , поскольку элемент перемещается в результате перемещения сборки. До сих пор я пытался зарегистрироваться на
this.myItem.LayoutUpdated += this.OnSomethingNeedsToUpdate;
но, похоже, он не срабатывает, когда я тащу сборку.
Также
this.myItem.MouseMove += this.OnSomethingNeedsToUpdate;
работает, только если я наведу курсор на предмет, который недостаточно хорош. Потому что я перемещаю ItemsControl, а затем должен навести курсор мыши на элемент, чтобы вызвать событие.
Есть идеи? Могу ли я обратиться к некоторому предку в визуальном дереве за помощью в виде события OneOfMyDecendantsWasRedrawn или аналогичного? Я снова пытаюсь получать уведомления, когда элемент перемещается, а не извещаться, когда перемещается сборка.