2012-02-03 96 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" };