首页 新闻 搜索 专区 学院

wpf,listbox中为什么选择同一项不能每次都触发SelectionChanged事件呢?

0
悬赏园豆:15 [已解决问题] 解决于 2012-07-09 16:42

wpf中,对于listbox中的每一项,当选择时会触发SelectionChanged事件,都会弹出一个messagebox。然而当我连续点击同一项时,第二次就不会弹出messagebox了。是不是此时用SelectionChanged这个触发事件不太合适呢?那么我该怎样实现呢?本人的知识有限,请各位能人give me a hand,万分感谢!

答应不爱你的主页 答应不爱你 | 初学一级 | 园豆:3
提问于:2012-06-01 16:51
< >
分享
最佳答案
0

SelectionChanged 是当选项改变是触发的事件,而你连续选择同一项的时候,

选择项并没有改变,你可以用click事件   然后再里面写

{

    意思是判断用户单击了listbox控件,并且有选择项的时候才执行代码

   if(listbox.selectItem!=null){这里面写你要执行的代码}

}

收获园豆:15
┢┦偉 | 小虾三级 |园豆:1240 | 2012-06-01 16:56

我这个listbox是通过XmlDataProvider获取的xml中的信息,在各项上触发不了MouseDown,只有在空白区域才能触发。您还有别的方法吗?

答应不爱你 | 园豆:3 (初学一级) | 2012-06-01 17:18

@答应不爱你: 那wpf中的listbox还有什么事件

┢┦偉 | 园豆:1240 (小虾三级) | 2012-06-01 17:21

@┢┦偉: 

关于mouse的就这几个呀

答应不爱你 | 园豆:3 (初学一级) | 2012-06-01 17:26

@答应不爱你: 关于选择的   比如说selectedchange这类的

┢┦偉 | 园豆:1240 (小虾三级) | 2012-06-01 17:30

@┢┦偉: 这类的其他的我没有发现,您能不能再想想别的途径呢?每次点击listbox中的每项都会触发一个事件。

答应不爱你 | 园豆:3 (初学一级) | 2012-06-06 15:53

@答应不爱你: 请问你现在解决了吗  我还是遇着同样的问题了

he-sanity | 园豆:200 (初学一级) | 2013-07-30 14:15
其他回答(1)
0

目测是想使用ListBoxItem的单击事件,此事件在ListBox的模板中,若要使用,需声明一个ICommand的附加属性,然后把需要在ListBox处使用该附加属性绑定需要执行的Command。然后声明ListBoxItem的模板,可以在模板最外层添加一个Button,Butoon添加该附加属性。这样就可以实现。
(1)在ListBox处将自定义附加Command属性绑定待执行的Command。
<ListBox
controls:AttachedLib.Command="{Binding Path=HospitalToDeviceCommand}"
</ListBox>
(2)<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Button Style="{StaticResource ItemButtonStyle}" Background="Transparent"
Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBox}, Path=(controls:AttachedLib.Command)}"
CommandParameter="{Binding}">
</Button>
</Setter.Value>
</Setter>
</Style>

Dwaynerbing | 园豆:204 (菜鸟二级) | 2021-05-13 11:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册