我有許多組合框設置對話框。通常情況下,這些ComboBoxes將只有一個可選值。所以爲了讓對話更易於使用,我希望ComboBox自動選擇單個值,當且僅當Items.Count == 1 & & SelectedItem == null。WPF組合框自動選擇第一個值,如果項目集合只包含一個
我發現this,但是如果我可以避免它,不想添加額外的依賴關係。
我結束了創建基礎上,組合框帶有一個疊加的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];
}
}
}
- 能相同的行爲與觸發器/掛鉤實現?
- 這是擴展ComboBox時需要做的所有事情嗎?我的意思是,當涉及到樣式等時,它是否會像ComboBox一樣工作(除了這種添加的行爲)?
SelectedIndex = 0是更可靠的選擇。在我的情況下,取決於我的綁定SelectedItem並不總是工作,因爲我添加了一個虛擬的'沒有物品可用'項目,我的'SelectedItem'綁定被拒絕 – 2013-05-09 02:19:43