通过 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
我在 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