在 WPF 中,我想以编程方式在 ComboBox 上引发 SelectionChanged 事件。我已经尝试过以下代码,但它不起作用:
myComboBox.RaiseEvent(new RoutedEventArgs(ComboBox.SelectionChangedEvent,
myComboBox));
我如何引发该事件?
Thanks
虽然这里的其他答案是很好的做法,但它们实际上并没有回答您的问题。要真正回答以编程方式引发 SelectionChangedEvent 的问题,您可以执行以下操作:
RoutedEvent routed = ComboBox.SelectionChangedEvent;
List<ComboBoxItem> remove = new List<ComboBoxItem> {myComboBox.Items[0] as ComboBoxItem},
add = new List<ComboBoxItem> {myComboBox.SelectedItem as ComboBoxItem};
var e = new SelectionChangedEventArgs(routed, remove, add);
myComboBox.RaiseEvent(e);
或者,如果您想用单个命令来完成此操作:
myComboBox.RaiseEvent(new SelectionChangedEventArgs(
ComboBox.SelectionChangedEvent,
new List<ComboBoxIem> {myComboBox.Items[0] as ComboBoxItem},
new List<ComboBoxItem> {myComboBox.SelectedItem as ComboBoxItem}));`
易如反掌。但我同意 @RohitVats 和 @BradleyDotNet 的观点,最好通过创建另一个采用常用事件处理程序参数的方法并从任何其他方法调用它来完成相同的功能。
我仍然会把这个留在这里,以防其他人不想接受这个建议。无论如何,知道如何以这种方式引发事件是件好事。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)