Silverlight ComboBox选择更改或重新选择事件

时间:2011-06-02 20:24:51

标签: silverlight combobox selectionchanged

在Silverlight ComboBox上,当您打开下拉列表时,SelectionChanged事件不会触发,然后单击当前选定的项目。发生这种情况时,触发事件/方法的最佳方法是什么? (除了通常会触发SelectionChanged的任何内容,即他们要么点击未选择的项目,要么点击选定的项目;但是当他们只是点击下拉菜单时) 我目前为列表中的项目设置了DataTemplates。我试图附加到其中元素的MouseLeftButtonUp事件,但项目周围有一个边距,因此它并不总是注册关闭组合框并选择项目的点击。

2 个答案:

答案 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事件中,我取消选择当前项;然后像往常一样处理鼠标点击,选择鼠标光标下的元素。