У меня есть диалог настроек с несколькими ComboBox. Чаще всего у этих ComboBox будет только одно выбираемое значение. Поэтому, чтобы упростить использование диалогового окна, я хочу, чтобы ComboBox автоматически выбирал одно значение, если и только если Items.Count == 1 && SelectedItem == null.
Я нашел это , но не хочу добавлять дополнительные зависимости, если я могу этого избежать.
В итоге я создал CustomControl на основе ComboBox с одним переопределением:
public class SmartComboBox : ComboBox
{
public SmartComboBox()
{
}
protected override void OnItemsChanged(
NotifyCollectionChangedEventArgs e)
{
base.OnItemsChanged(e);
if (Items.Count == 1 && SelectedItem == null)
{
SelectedItem = Items[0];
}
}
}
Да, именно так -- иначе будет работать одинаково.
Я подумал, что это может быть логическим завершением вашего предыдущего вопроса о подписке на события ComboBox.
Да, ComboBox будет продолжать работать нормально, а другой способ (лично мой предпочтительный способ, поскольку я могу добавить несколько вариантов поведения в один список со списком) заключается в использовании вариантов поведения, предложенных в вопросах, которые вы связаны с.