我有一个关于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()
,第一次返回当前窗口中组合框的哈希码,第二次返回“已关闭”的窗口的哈希码。
因此,事件会随着窗口显示的次数而触发多次。看起来旧的组合框没有被处理或类似于那样的东西。
希望您能理解我的问题。
提前致谢!