C# 如何做';输入绑定';在';边界';元素是否正确?
我有一个WPFC# 如何做';输入绑定';在';边界';元素是否正确?,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个WPFListBox,它使用DataTemplate作为itemtplate。此数据模板由一个边框和几个子元素组成 我想要一个公共命令(“SelectImageCommand”)来处理鼠标左键单击边框区域中的任意位置(任何子元素或空边框本身) 我在边框中放置了一个InputBinding。命令将按偏好执行,但“视觉选择”(永久更改背景颜色)不再发生。如果我删除鼠标绑定,则视觉选择效果良好 通过为MouseLeftButtonDown事件添加一个事件处理程序,我能够实现一个非MVVM解决方
ListBox
,它使用DataTemplate
作为itemtplate
。此数据模板
由一个边框
和几个子元素组成
我想要一个公共命令(“SelectImageCommand”)来处理鼠标左键单击边框
区域中的任意位置(任何子元素或空边框本身)
我在边框中放置了一个InputBinding
。命令将按偏好执行,但“视觉选择”(永久更改背景颜色)不再发生。如果我删除鼠标绑定
,则视觉选择效果良好
通过为MouseLeftButtonDown
事件添加一个事件处理程序,我能够实现一个非MVVM解决方案
在我看来,MouseBinding
正在以与实现事件处理程序相同的方式“处理”鼠标单击事件,并将MouseButtonEventArgs的Handled
属性设置为true
如何执行MVVMMouseBinding
而不捕获单击事件
我不是WPF专业人士。请尝试提供符合MVVM的解决方案
设置边框的背景属性
:
<Border Padding="10" Width="325" Height="350" BorderThickness="0" Margin="5"
Background="Transparent">
...
...
否则,未绘制区域将不会响应鼠标事件。设置边框的背景属性:
<Border Padding="10" Width="325" Height="350" BorderThickness="0" Margin="5"
Background="Transparent">
...
...
否则,未上漆区域将不会响应鼠标事件。谢谢您的提示!现在,该命令按优先顺序执行。但“光学”选择现在只有在双击任意自由边界区域时才会发生。鼠标悬停时,背景会改变,但一次点击不会引起视觉变化。我更新了问题和代码。解决方案仅适用于丑陋的事件处理程序解决方案,而不适用于鼠标绑定
。感谢您的提示!现在,该命令按优先顺序执行。但“光学”选择现在只有在双击任意自由边界区域时才会发生。鼠标悬停时,背景会改变,但一次点击不会引起视觉变化。我更新了问题和代码。解决方案仅适用于丑陋的事件处理程序解决方案,而不适用于MouseBinding
。