在 Silverlight ComboBox 上,当您打开下拉列表,然后单击当前选定的项目时,不会触发 SelectionChanged 事件。发生这种情况时触发事件/方法的最佳方法是什么?(除了通常会触发 SelectionChanged 的任何内容,即他们要么单击未选中或选中的项目;但不是当他们只是单击下拉菜单时)
我目前为列表中的项目设置了 DataTemplates。我试图附加到其中元素的 MouseLeftButtonUp 事件,但项目周围有一个边距,因此它并不总是注册关闭组合框并选择项目的单击。
问问题
2495 次
2 回答
1
你考虑过“DropDownClosed”事件吗?
于 2011-06-02T20:28:55.153 回答
0
我知道距离上次发表评论已经有很长时间了,但我会发布我的解决方案,以防有人遇到同样的问题。我设法“重新选择”当前选定项目的唯一方法是像这样修改 ComboBoxItemTemplate:
<Style TargetType="ComboBoxItem">
....
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBoxItem">
<Grid ... MouseLeftButtonDown="Grid_MouseLeftButtonDown">
...
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
现在,在 Grid_MouseLeftButtonDown 事件中,我取消选择当前项目;然后鼠标单击将照常处理,选择鼠标光标下的元素。
于 2012-10-22T14:46:50.043 回答