У меня есть диалог настроек с несколькими полями со списком. Чаще всего эти комбинированные списки имеют только одно выбираемое значение. Поэтому для упрощения использования диалога я хочу, чтобы 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 (за исключением этого добавленного поведения), когда дело касается стилей и тому подобного?