我有4个ComboBoxes水平排列:标题只是供参考。
平台发布项目
框的UI模型如下所示:
releasesFilterComboBox.IsEnabled = false;releaseItemsFilterComboBox.IsEnabled = false;releaseItemProductsFilterComboBox.IsEnabled = false;releaseItemProductsFilterComboBox.IsEnabled=false
BuildsListBox.ItemsSource = platformSelectedBI = from bi in buildInfos bi.GetBuildsResult.ReleasePlatform == selectedPlatform选择bi;releasesFilterComboBox.IsEnabled = true;
List<String> releaseNumbers = ( from bld in buildInfos.Where(bi => bi.GetBuildsResult.ReleasePlatform == selectedPlatform)
select bld.GetBuildsResult.ReleaseNumber ).ToList();
releaseNumbers.Insert(0, "All");
releasesFilterComboBox.ItemsSource = releaseNumbers.Distinct();等,->为其余的箱子相同。
我的问题是:在我至少填充了前两个ComboBoxes之后,当我选择
在先前的ComboBox上,在预期的行为(其他组合框被禁用)之后,当我选择'ALL‘以外的选项时,会为以前填充的每个COMBOBOX触发SelectionChanged事件!(所有的都是残疾的)。###
只是澄清一下,如果还没有的话。
我已经选择了一个平台,所以发布就被填充了。然后我选择了一个版本,这样就填充了发布项。现在,当我在平台组合框上选择“ALL”时,发布和发布项框将被禁用。然后,当我选择“ALL”以外的平台时,就会触发SelectionChanged事件,这不仅适用于平台,也适用于发布和ReleaseItems。我对事件处理程序第二部分中的组合框所做的唯一更改是设置项目源代码,如上面所示的in代码。没别的了。
为什么要为其他SelectionChanged触发comboBoxes事件?这是SL组合框中已知的错误吗?我能阻止这种事发生吗?
如果问题和解释不太清楚,我很抱歉。如果你问我,我会尽力澄清的。
非常感谢!
发布于 2009-12-24 14:39:14
这一切都归结为名单的重新划分。您可以修复的一种方法是在选择"ALL“并禁用其他组合框时删除事件处理程序。然后,如果选择“所有”以外的其他内容,则可以设置数据源,然后重新添加选择更改事件处理程序。
另一种方法是将它们都放在那里,然后在“所有”选择中将选定的索引设置为-1 (默认),而在事件处理程序中,如果是-1,则不要做任何事情。
这只是个想法。
https://stackoverflow.com/questions/1956440
复制相似问题