当我向WPF窗口添加一个comboBox时,如何将项添加到comboBox?在设计的XAML代码中或在NameOfWindow.xaml.cs文件中?
ati*_*yar 43
场景1 - 您没有ComboBox项目的数据源
您可以使用静态值填充ComboBox,如下所示 -
从XAML:
<ComboBox Height="23" Name="comboBox1" Width="120">
<ComboBoxItem Content="X"/>
<ComboBoxItem Content="Y"/>
<ComboBoxItem Content="Z"/>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
或者,从CodeBehind:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
comboBox1.Items.Add("X");
comboBox1.Items.Add("Y");
comboBox1.Items.Add("Z");
}
Run Code Online (Sandbox Code Playgroud)
场景2.a - 您有一个数据源,项目永远不会被更改
您可以使用数据源来填充ComboBox.任何 IEnumerable类型都可以用作数据源.你需要将它分配给ItemsSourceComboBox 的属性,这样就可以了(这取决于你如何填充IEnumerable).
场景2.b - 您有一个数据源,项目可能会被更改
您应该使用a ObservableCollection<T>作为数据源并将其分配给ItemsSourceComboBox 的属性(这取决于您如何填充ObservableCollection<T>).使用ObservableCollection<T>确保无论何时在数据源中添加或删除项目,更改都将立即反映在UI上.
Pra*_*ana 31
最好是构建ObservableCollection并利用它
public ObservableCollection<string> list = new ObservableCollection<string>();
list.Add("a");
list.Add("b");
list.Add("c");
this.cbx.ItemsSource = list;
Run Code Online (Sandbox Code Playgroud)
cbx是comobobox名称
另请阅读:List,ObservableCollection和INotifyPropertyChanged之间的区别
Nik*_*wal 10
用这个
string[] str = new string[] {"Foo", "Bar"};
myComboBox.ItemsSource = str;
myComboBox.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)
要么
foreach (string s in str)
myComboBox.Items.Add(s);
myComboBox.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)