我对 wpf 事件有疑问。在 xaml 中,我有以下带有 selectionchanged 事件的组合框:
<ComboBox Grid.Column="1" Grid.Row="1" Name ="comboBox"
SelectedItem="{Binding CurrentEventBinding.ControlId, ValidatesOnDataErrors=True}"
ItemsSource="{Binding ControlsNames}" SelectionChanged="ComboboxSelectionChanged">
在代码隐藏中,我有以下代码:
private void ComboboxSelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) {
(DataContext as EventBindingEditViewModel).VmCommands.UpdateSourceCommand.Execute(null);
}
我有以下工作场景: Window.ShowDialog(); -> ComboboxSelectedChanged(引发事件)-> CloseWindow(); 再说一遍:Window.ShowDialog(); -> ComboboxSelectedChanged(事件被引发两次)如果在即时窗口中我写sender.GetHashCode()
它第一次从当前窗口返回组合框的哈希码,第二次返回“死”窗口的哈希码。因此,在显示窗口时,该事件被多次引发。看起来旧的组合框没有被处理或类似的东西。希望你能理解我的问题。提前致谢!