2016-06-10 36 views
0

有没有办法检查哪个组合框哪个值最近被改变了?如何测试最近更改过哪个组合框? WPF

how to check if item is selected from a comboBox in C#

我知道你可以做到这一点,

if (MyComboBox.SelectedIndex >= 0) 
{ 
    //do stuff 
} 

我遇到的问题是,我在给一个处理程序,由于组合框的数量结合事件处理程序和具有一个事件如果我可以帮助它,每个组合框真的不切合实际。

有没有办法让变量赋值给你最近被改变过的组合框名称?或者我将不得不为每个组合框使用单独的事件处理程序?

+0

单一事件处理程序是公平的。您可以请发布该事件处理程序的代码 –

+0

@un-lucky,是的每个组合框都是唯一命名的,我正在使用数据绑定'SelectionChanged =“”'属性来调用单个事件处理程序。不确定代码会有多大帮助,因为它只是您的标准事件。 'private void comboboxChanged(object sender,SelectionChangedEventArgs e)' – KyloRen

+0

好看看下面的答案 –

回答

1

事实上,当您对所有组合框使用单个事件处理程序时,跟踪最近的组合框变化将非常容易。你可以通过以下方式来完成。

string lastComboName=""; // define global variable 
//common event handler for all combobox 
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    var cmb = (ComboBox)sender; 
    lastComboName = cmb.Name; 
} 
1

希望每个组合框有一个唯一的名称,那么我们就可以使用这些名称来识别哪一个是事件的发送者:现在考虑这个下面的代码:

private void CboFirst_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    ComboBox selctedComboBox = sender as ComboBox; 
    string ComboName = selctedComboBox.Name; 
    // Do something 
} 

现在跟踪最后更新组合框,你可以通过保持一个全局变量并在每个触发器中更新它来实现这一点,所以每次它保存最新值(组合框的名称)

相关问题