在Silverlight ComboBox上,当您打开下拉列表时,SelectionChanged事件不会触发,然后单击当前选定的项目。发生这种情况时,触发事件/方法的最佳方法是什么? (除了通常会触发SelectionChanged的任何内容,即他们要么点击未选择的项目,要么点击选定的项目;但是当他们只是点击下拉菜单时) 我目前为列表中的项目设置了DataTemplates。我试图附加到其中元素的MouseLeftButtonUp事件,但项目周围有一个边距,因此它并不总是注册关闭组合框并选择项目的点击。
答案 0 :(得分:1)
您是否考虑过“DropDownClosed”事件?
答案 1 :(得分: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事件中,我取消选择当前项;然后像往常一样处理鼠标点击,选择鼠标光标下的元素。