I。这是C#形式中的代码部分
this.cbDay.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.cbDay.FormattingEnabled = true;
this.cbDay.Items.AddRange(new object[] {
});//items from a loop in another class and method.
II。这是我在另一类中的方法
namespace StudentRegistrationApplication
public class loopComboBoxSelection
{
public loopComboBox(int start, int finsh)
{
for (int i = start; i < finsh; i++)
{
ComboboxItem item = new ComboboxItem();
item.Text = "Item " + i;
item.Value = i;
ModDown.Items.Add(item);
}
}
}
III。我想调用循环方法,该方法将生成从1到100的项。对于这个问题,语法是什么?
this.cbDay.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.cbDay.FormattingEnabled = true;
this.cbDay.Items.AddRange(new object[] {
"1"
"2"
"3"
"4"
"5"});
你做错了。您应该将数据绑定到ComboBox
,例如
cbDay.DisplayMember = nameof(ComboBoxItem.Text);
cbDay.ValueMember = nameof(ComboBoxItem.Value);
cbDay.DataSource = Enumerable.Range(startValue, endValue - startValue + 1)
.Select(i => new ComboBoxItem {Text = $"Item {i}", Value = i})
.ToArray();
Text
值随后将显示在控件中,当用户进行选择时,您可以从控件的SelectedValue
属性中获得相应的Value
。
请注意,您不必使用LINQ来创建列表,但重要的是绑定部分。通过设置DataSource
,您可以从SelectedValue
中获得特定的属性值,而不仅仅是从SelectedItem
中获得的值。