在不触发 SelectedIndexChanged 的情况下更改 SelectedIndex?
Change SelectedIndex without triggering SelectedIndexChanged?
我有问题。我想为 ComboBox 设置一个默认值(有点像 'header text')。这纯粹是为了美观,将向用户描述组合框的初始用途。
我还有一个用于打开另一个视图的组合框的 SelectedIndexChanged。
我的问题是,我将 .SelectedIndex 更改为“0”值,因此我的 'Header' 被选中。当我更改为另一个 Index 时,它似乎会导致无限循环,直到 ComboBox 的 .SelectedValue 变为 null 并且 .SelectedIndex 变为 '-1' 并引发异常。
我的代码如下:
public MyView()
{
this.InitializeComponent();
Load += MyLoadEvent();
}
private void MyLoadEvent(object sender, RoutedEventArgs e)
{
myComboBox.SelectedIndex = 0;
}
private void myComboBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
{ // Use ComboBox Value and Go to the Other View }
谢谢!
您可以通过添加一些标志变量来跳过第一个事件。将 processEvent
设置为 false
后跳过第一个或任何下一个事件:
public MyView()
{
this.InitializeComponent();
Load += MyLoadEvent();
processEvent = false;
}
...
private void myComboBoxSelectionChanged(object sender, selectionChangedEventArgs e)
{
if ( processEvent )
{
// Use ComboBox Value and Go to the Other View
// event processing
...
}
processEvent = true;
}
我有问题。我想为 ComboBox 设置一个默认值(有点像 'header text')。这纯粹是为了美观,将向用户描述组合框的初始用途。
我还有一个用于打开另一个视图的组合框的 SelectedIndexChanged。
我的问题是,我将 .SelectedIndex 更改为“0”值,因此我的 'Header' 被选中。当我更改为另一个 Index 时,它似乎会导致无限循环,直到 ComboBox 的 .SelectedValue 变为 null 并且 .SelectedIndex 变为 '-1' 并引发异常。
我的代码如下:
public MyView()
{
this.InitializeComponent();
Load += MyLoadEvent();
}
private void MyLoadEvent(object sender, RoutedEventArgs e)
{
myComboBox.SelectedIndex = 0;
}
private void myComboBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
{ // Use ComboBox Value and Go to the Other View }
谢谢!
您可以通过添加一些标志变量来跳过第一个事件。将 processEvent
设置为 false
后跳过第一个或任何下一个事件:
public MyView()
{
this.InitializeComponent();
Load += MyLoadEvent();
processEvent = false;
}
...
private void myComboBoxSelectionChanged(object sender, selectionChangedEventArgs e)
{
if ( processEvent )
{
// Use ComboBox Value and Go to the Other View
// event processing
...
}
processEvent = true;
}