【发布时间】:2010-11-15 09:44:19
【问题描述】:
在 ComboBox.SelectionChanged 事件中,我想知道是谁更改了 ComboBox 值、用户或其他代码。
起初我检查 cmbBox.IsDropDownOpen 是否为真。但如果用户使用键盘更改了 ComboBox,则这是错误的。
然后我想检查它是否集中。 Silverlight ComboBox 没有 IsFocused 属性,因此我将状态保存在 cmbBoxGotFocus 和 cmbBoxLostFocus 事件处理程序中:
private bool cmbBox_isFocused = false;
private void cmbBox_GotFocus(object sender, RoutedEventArgs e)
{
cmbSalesPerson_isFocused = true;
}
private void cmbBox_LostFocus(object sender, RoutedEventArgs e)
{
cmbSalesPerson_isFocused = false;
}
不幸的是,这也不起作用,因为有一些我不明白的奇怪行为:当用户点击 ComboBox 时,两个事件一个接一个地被触发,所以 bool 仍然是 false。
【问题讨论】:
标签: c# silverlight