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 (イベントは 2 回発生します) そして、即時ウィンドウに書き込むsender.GetHashCode()
と、最初は現在のウィンドウからコンボボックスのハッシュコードが返され、2 回目は「死んだ」ウィンドウのハッシュコードが返されます。そのため、ウィンドウが表示されるたびにイベントが発生します。古いコンボボックスが破棄されていないようです。私の問題を理解してください。前もって感謝します!