2011-12-28 48 views
4

我新的WPF項目,如何addComboBox動態地在WPF

我動態添加項目到組合框像下面

objComboBox.Items.Add("<--Select-->"); 

現在我需要設置值&指數爲特定項目。在asp.net我正在做

DropDownList1.Items.FindByText("<--Select-->").Value ="-1" 

我可能不會在wpf中找到合適的方法。我該怎麼做?

回答

14

XAML:

<ComboBox ItemsSource="{Binding cbItems}" SelectedItem="{Binding SelectedcbItem}"/> 

代碼隱藏:

public ObservableCollection<ComboBoxItem> cbItems { get; set; } 
public ComboBoxItem SelectedcbItem { get; set; } 

public MainWindow() 
{ 
    InitializeComponent(); 
    DataContext = this; 

    cbItems = new ObservableCollection<ComboBoxItem>(); 
    var cbItem = new ComboBoxItem { Content = "<--Select-->" }; 
    SelectedcbItem = cbItem; 
    cbItems.Add(cbItem); 
    cbItems.Add(new ComboBoxItem { Content = "Option 1" }); 
    cbItems.Add(new ComboBoxItem { Content = "Option 2"}); 
} 
+0

最後,一個可行的解決方案!謝謝你:) – aqua

+0

我很好奇。在將cbItem添加到cbItems之前,將其添加到SelectedcbItem。當綁定機制將SelectedcdItem更改爲尚未綁定集合的對象時,是否有任何問題或副作用? – Les

1
combo.SelectedIndex = combo.Items.IndexOf("<--Select-->"); 

但更好的方法是使用綁定,通過snurre

+0

不,這是錯的!閱讀問題 – MyKuLLSKI

0

提到如果它列表中的第一個應該使用: objComboBox.SelectedIndex = 0; 或 DropDownList1.SelectedIndex = 0;

如果它不是第一個,然後使用: objComboBox.SelectedItem = 「< - 選擇 - >」; 或 DropDownList1.SelectedItem = 「< - 選擇 - >」;