我在画布上有很多项目。当我点击一个,我希望它设置它的"选择" property为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>
我想在行为事件中的某个地方,我应该在视图模型&#34;选择&#34;财产已经改变,但我不知道该怎么做......
答案 0 :(得分:1)
考虑使用带有利用画布的控件模板的列表视图。
然后使用selecteditem属性。
答案 1 :(得分:0)
我已经屈服了,我现在通过行为直接处理鼠标事件。