【发布时间】:2021-01-14 07:37:32
【问题描述】:
目标:在选择组合框下拉列表中的项目时发出事件。
问题:然而,使用“SelectionChanged”,如果用户选择与当前正在选择的项目相同的项目,则选择不会改变,因此不会触发此事件。
问题:只要鼠标单击该项目并且该项目是被选中。
(澄清:问题是当再次选择相同的项目时如何触发“某事”。下拉列表中没有重复项。场景:第一次选择项目 1,关闭下拉列表。然后再次打开下拉列表框并在某些功能被触发时选择项目 1。)
解决方案:目前似乎没有直接的解决方案可以做到这一点。但是根据每个单独的项目,可以有一些方法来解决它。 (如果确实有好的方法,请更新)。谢谢。
【问题讨论】:
-
不要在 WPF 中使用事件。创建一个合适的 ViewModel 并改用 DataBinding 和简单的属性。
-
它必须成为一个事件吗? WPF 提供数据绑定,这将允许您将 ComboBox 的
SelectedItem绑定到视图的 DataContext 属性 -
您好,感谢您的建议。看到您的评论后,我尝试了这种方法。我所做的是:将 SelectedItem(也尝试过 SelectedIndex)绑定到 ViewModel 中的一个属性,并在 setter 中执行一些如果有“SelectionChanged”事件时我会执行的逻辑。 However, this still could not solve the problem that when item selected is same as before, setter will not be triggered.我可能在这里遗漏了一些东西。
-
那么,如果选择了相同的项目,您需要运行什么样的逻辑?状态没有改变,那么您的应用程序究竟会反映什么?
-
未测试但制作项目按钮然后您可以处理按钮单击事件。