今早迁移一个WinForm项目到WPF,ComboBox控件的SelectedIndexChanged事件迁移为SelectionChanged事件后出现了奇怪的栈错误。经查明是SelectionChanged事件在WPF页面加载完成之前会自动执行一次,我们并不希望这样。
以下方法可避免SelectionChanged事件的第一次执行:
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.RemovedItems.Count > 0)
{
//事件响应
}
}e.RemovedItems.Count可以帮助屏蔽页面初始化完成前的非法操作。
本文介绍了一个在将WinForm项目迁移到WPF时遇到的问题:ComboBox控件的SelectionChanged事件在页面加载完成前自动触发。文中提供了一种解决方案,通过检查e.RemovedItems.Count来避免首次加载时的非法操作。
5万+

被折叠的 条评论
为什么被折叠?



