通过 XAML 中的鼠标事件更改 ViewModel 属性

Change ViewModel property through mouse event in XAML

我在 canvas 上有一堆物品。当我点击其中一个时,我希望它将其 "Selected" 属性 设置为 true,在其上显示一个装饰器,并将其他项目的 "Selected" 属性 设置为 false .

在我的 XAML 我有这个 :

            <i:Interaction.Behaviors>
                <behaviors:DragOnCanvasBehavior
                    DraggableItem="{Binding}">
                    <behaviors:DragOnCanvasBehavior.MouseOverAdornerTemplate>
                        <DataTemplate>
                            <Border
                                DataContext="DraggableBorder"
                                BorderBrush="#B0000000"
                                BorderThickness="3"
                                Width="{Binding Path=Width}"
                                Height="{Binding Path=Height}"></Border>
                        </DataTemplate>
                    </behaviors:DragOnCanvasBehavior.MouseOverAdornerTemplate>
                    <behaviors:DragOnCanvasBehavior.SelectedAdornerTemplate>
                        <DataTemplate>
                            <Border
                                DataContext="DraggableBorder"
                                BorderBrush="#FF34619E"
                                BorderThickness="3"
                                Width="{Binding Path=Width}"
                                Height="{Binding Path=Height}"
                                Visibility="{Binding Path=Selected, Converter={StaticResource BooleanToVisibilityConverter}}"></Border>
                        </DataTemplate>
                    </behaviors:DragOnCanvasBehavior.SelectedAdornerTemplate>

                    <i:Interaction.Triggers>
                        <!-- Dragging and mouse over/out events like this : -->
                        <i:EventTrigger EventName="PreviewMouseLeftButtonDown">
                            <i:InvokeCommandAction CommandName="StartDrag" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                </behaviors:DragOnCanvasBehavior>
            </i:Interaction.Behaviors>
        </Border>
    </AdornerDecorator>
</DataTemplate>

我想在行为事件的某个地方,我应该在视图模型的 "Selected" 属性 发生变化时调用一个命令,但我不知道该怎么做...

考虑将列表视图与利用 canvas.

的控件模板一起使用

然后使用选择项属性。

我屈服了,我现在直接通过行为来处理鼠标事件

不过我还有一些问题:Bind adorner property to viewmodel property