我遇到了问题。我想为ComboBox设置一个默认值(类似于'标题文本')。这纯粹是美学目的,并将向用户描述组合框的初始目的。
我还有一个用于打开另一个View的组合框的SelectedIndexChanged。
我的问题是,我将.SelectedIndex更改为' 0'价值所以我的标题'被选中。当我改为另一个索引时,它似乎会导致一个无限循环,直到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 }
谢谢!
答案 0 :(得分:1)
您可以通过添加一些标志变量来跳过第一个事件。将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;
}