如何用索引列表填充下拉框

How to populate dropdown box with indices list

希望这是一个快速的答案。 C# 和 NEST 的新手(从我以前的帖子中可能很明显)。

我正在使用 NEST 查询我的 ES 实例,并构建了一个小型 winform 应用程序来帮助完成任务。我想让我的 winform 上的组合框之一动态填充集群中的索引名称。

到目前为止我用过:

var node = new Uri("http://xxx.xxx.x.xxx:xxx");
var settings = new ConnectionSettings(node);
var client = new ElasticClient(settings);
var myindexes = client.CatIndices();

我一辈子都想不出如何用 "myindexes"

中存储的值来填充组合框的值

我试过了

combobox1.value = myindexes.ToList();

但看不出如何更深入一层。

我知道这是一个简单的问题,但如果有人能抽出一点时间,我将不胜感激。

非常感谢您一如既往的帮助!

米克

假设 myindexes 是一个实现 IListArray 的对象。您可以使用以下任一选项:

ComboBox.DataSource

this.comboBox1.DataSource = myindexes;

ComboBox.Items.AddRange

this.comboBox1.Items.AddRange(myindexes.Cast<object>().ToArray());

注:

  • 将为 ComboBox 中的项目显示的文本是 ToString 方法的结果。
  • 如果您要显示复杂对象,使用 DataSource 方式,您可以将 DisplayMember 设置为要在 ComboBox 中显示的复杂对象的属性之一。
  • 要设置为 DataSource 属性 的对象应该是实现 IList 接口或 Array 的对象。如果不是,您应该首先将其转换为预期提到的类型。

你可以使用 BindingSource

BindingSource bs = new BindingSource();
bs.DataSource = myindexes.ToList();
comboBox1.DataSource = bs;