【发布时间】:2018-12-15 06:03:08
【问题描述】:
当我将 SelectionChanged 事件以及代码中处理事件的方法添加到以下组合框时:
....
<ComboBox Name="OrderBox" HorizontalAlignment="Left" SelectionChanged="OrderBox_OnSelectionChanged">
<ComboBoxItem Margin="4,4,4,4" IsSelected="True">Por Nombre (A - Z)</ComboBoxItem>
<ComboBoxItem Margin="4,4,4,4">Por Nombre (Z - A)</ComboBoxItem>
<ComboBoxItem Margin="4,4,4,4">Por Apellido (A - Z)</ComboBoxItem>
<ComboBoxItem Margin="4,4,4,4">Por Apellido (Z - A)</ComboBoxItem>
</ComboBox>
....
我看到在控件未初始化错误后调试应用程序,当应用程序调用 InitializeComponent() 时,它做的第一件事就是调用我的组合框事件处理程序方法 (OrderBox_OnSelectionChanged() )。所以我不能真正使用组合框的事件,因为之后每个控制器都会被加载。
如果我从组合框 xaml 和事件处理程序中删除事件,即使我有更多事件处理程序,错误也不会发生,只是由于某种我看不到的原因调用那个。
代码就这么简单:
public MainWindow()
{
InitializeComponent(); //FROM HERE IT GOES TO OrderBox_OnSelectionChanged()
Displayer();
}
private void OrderBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
}
....
希望你知道我做错了什么。
【问题讨论】:
-
初始化时,组合框复选框将从未设置更改为您的初始值。这是因为它们不能取消设置。没有办法避免调用事件处理程序。
标签: c# wpf xaml events components