2012-02-03 103 views
2

我有一個組合框,我想使用從方法返回的字符串數組加載。我目前只是有一個for循環加載,但我認爲應該只是將字符串數組直接綁定到組合框。 (我只是想提高我的代碼)將字符串數組添加到組合框

我已經做了一些搜索,我已經看到使用datarange或數據源的答案,但這些似乎都沒有工作。我也嘗試過datacontext,因爲這看起來像是一種可能性。有什麼我丟失或沒有辦法將數組全部放在一行中?

我使用C#WPF和文件是MainWindow.xaml.cs

謝謝!

回答

3

ItemsSource是你想要分配的。

DataSource在Windows窗體時,你通常不會遇到它在WPF如果您想了解DataContexts你需要閱讀了關於data binding這是非常有用。)

+0

@ HB - 是否有一種方法來實現這一點,而無需更改xaml代碼,只需在c#(xaml.cs)中執行? – Johnston 2012-02-03 05:06:09

+1

您可以從那裏設置ItemsSource。但是像H.B.說,如果你會做很多WPF,你應該真的研究MVVM和數據綁定。使用MVVM,您將擁有一個viewmodel,這是您想要顯示的內容的一種無UI的表示形式。所以在你的情況下,你想顯示一個組合框與一些文本項目;在你的viewmodel中,將由一組字符串表示。當您添加或刪除該集合中的字符串時,它們將通過綁定出現在您的用戶界面中。 – 2012-02-03 05:13:29

+1

@Johnston:如果你命名了'ComboBox'例如'cb'你可以使用'cb.ItemsSource = ...' – 2012-02-03 05:16:43

4

試試這個:

cbxList.ItemsSource = new string[] { "hello", "from", "mars" };