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

时间:2016-01-13 22:24:31

标签: c# winforms elasticsearch nest

希望这可以是一个快速的答案。 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();

但无法弄清楚如何更深入一层。

我知道这是一个简单的问题,但如果有人可以稍等片刻,我真的很感激帮助。

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

Mick

2 个答案:

答案 0 :(得分:2)

假设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的对象。如果不是,您应该首先将其转换为预期提到的类型。

答案 1 :(得分:0)

您可以使用BindingSource

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