在我的wpf应用程序组合框SelectionChanged事件触发绑定时,如何解决它?如何防止绑定时间(WPf)上的combobox SelectionChanged事件?
<telerik:RadComboBox
StaysOpenOnEdit="True"
IsSynchronizedWithCurrentItem="True"
OpenDropDownOnFocus="True"
ItemsSource="{Binding SiteSurveyModel.AtsNumberCollection, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsFilteringEnabled="False"
IsEditable="False">
<ie:Interaction.Triggers>
<ie:EventTrigger EventName="SelectionChanged">
<ie:InvokeCommandAction Command="{Binding ATSRadComboBoxSelectedItemChangedCommand}" CommandParameter="{Binding ElementName=atsRadComboBox}" >
</ie:InvokeCommandAction>
</ie:EventTrigger>
</ie:Interaction.Triggers>
</telerik:RadComboBox>
而且
private void BindAtsNumberCollection()
{
try
{
List<int> NumberList = new List<int>();
for (int i = 1; i <= 100; i++)
{
NumberList.Add(i);
}
SiteSurveyModel.AtsNumberCollection = new ObservableCollectionEx<int>(NumberList);
}
catch (Exception ex)
{
customerAC.LogFile(ex.ToString());
}
}
和选择变化的方法是
private void onATSRadComboBoxSelectedItemChangedCommand(object obj)
{
try
{
RadComboBox atsRadComboBox = obj as RadComboBox;
string selectedValue= atsRadComboBox.SelectedValue.ToString();
if (selectedValue.Trim() != string.Empty)
{
BindAtsData(Convert.ToInt32(selectedValue));
}
}
catch (Exception ex)
{
customerAC.LogFile(ex.ToString());
}
}
我们正在执行一些计算,当它的发动上加载时间则结果将到来的错误,我们如何解决这个问题非常令人沮丧。请提供完整的解决方案。
好吧,它正在改变,所以防止改变事件听起来像你想隐藏起源于不同部分的问题。 – grek40
嗨grek40,你明白我的问题吗?当页面打开时,事件正在发射,我不想这样。任何解决方案 –
事件发生时没有对选择进行实际更改,或者选择是否在绑定时间上发生了更改?这是两件完全不同的事情,最后你可能不得不更新你的处理程序代码,因为如果不派生你自己的自定义控件,可能无法阻止事件发生。或者如果可能的话,考虑依赖事件的其他组件的可能性被解雇。你不能保证是唯一的听众。 – grek40