Witam. Mam problem z przesuwaniem kształtów za pomocą przycisków. Napisałem takie coś:

 <Window.Resources>
        <vm:PanelViewModel x:Key="PanelViewModel" />
    </Window.Resources>

<Rectangle DataContext="{StaticResource PanelViewModel}" x:Name="Panel" Style="{StaticResource Panel}" 
                   Width="{Binding Width, Mode=TwoWay}"  Canvas.Left="{Binding PositionX, Mode=TwoWay}" Canvas.Top="{Binding PositionY}" >

            <i:Interaction.Triggers>
                <i:EventTrigger EventName="KeyDown">
                    <i:InvokeCommandAction Command="{Binding MoveCommand}"></i:InvokeCommandAction>
                </i:EventTrigger>
            </i:Interaction.Triggers>


        </Rectangle>

gdzie w klasie viewmodelu komenda MoveCommand odpowiada za zmianę wartości PositionX, kkóra jest bindowana do Canvas.Left
Fragment klasy Viewmodelu:

class PanelViewModel : BindableBase
    {
        private readonly Panel panel = new Panel();
        
        public ICommand MoveCommand { get; set; }

        public PanelViewModel()
        {
            MoveCommand = new DelegateCommand(MoveAction);
        }

      
        public int PositionX
        {
            get { return panel.PositionX; }
            set
            {
                panel.setPositionX(value);
                RaisePropertyChanged("PositionX");
            }
        }


        public void MoveAction()
        {
                PositionX -= 10;
        }
    }

Niestety moje rozwiązanie nie działa. Próbowałem tego samego rozwiązania na sliderze i zadziałało(prostokąt się przesunął) dopiero po kliknięciu na slider.
Będę wdzięczny za pomoc.