我有一些包含许多ComboBox的设置对话框。通常,这些ComboBox只有一个可选值。因此,为了使对话更容易使用,我希望ComboBox自动选择单个值,当且仅当,Items.Count == 1&& SelectedItem == null。
我发现this但是如果可以避免的话,我不想添加其他依赖项。
我最终创建了一个基于ComboBox的CustomControl,只有一个覆盖:
public class SmartComboBox : ComboBox
{
public SmartComboBox()
{
}
protected override void OnItemsChanged(
NotifyCollectionChangedEventArgs e)
{
base.OnItemsChanged(e);
if (Items.Count == 1 && SelectedItem == null)
{
SelectedItem = Items[0];
}
}
}
答案 0 :(得分:1)
是的,ComboBox将继续完美地工作,而另一种方式(我个人喜欢的方式,因为我可以将多种行为添加到单个组合框中)是使用您链接的问题中建议的行为。
答案 1 :(得分:1)
是的,就是这样 - 否则它的工作方式相同。
我认为这可能是您之前关于订阅ComboBox事件的问题的逻辑终点。