【问题标题】:How to bind Controls to Data, based on seletced item of ComboBox?如何根据 ComboBox 的选定项将控件绑定到数据?
【发布时间】:2023-03-16 09:41:01
【问题描述】:

我无法理解如何将数据绑定到某些控件。

从下图中,我在一个列表中有 n 个对象,我希望这些对象是可编辑的,但我不希望有 n 个控件。我想从组合框中选择哪个对象 - 这样我就可以重复使用一组控件。

我已将数据绑定到我的组合框,并将数据绑定到网格视图 - “简单”。 但是我的numericalUpDown 没有DataSource 成员。

如何绑定?

而且,当comboBox1_SelectedIndexChanged() 被调用时,我会更改绑定吗?如果没有,有什么好的方法可以做到这一点?

感谢您的建议。

【问题讨论】:

  • 快速谷歌搜索如何Bind data to ComboBox Winforms
  • 对不起哥们,我说我绑定了一个组合表单,我说这很容易。
  • 您的NumericUpDown 控件上不需要DataSource。您应该使用设计器或使用代码将绑定添加到他们的 DataBindings 集合。
  • DataBindings,好的 - 我认为这是因为它是一种单数形式,而不是像 datagridview 或组合框这样的“容器”。谢谢。
  • Windows 窗体可以利用两种类型的数据绑定:简单绑定和复杂绑定。看看Types of Data Binding

标签: c# winforms data-binding


【解决方案1】:

我不确定这是否是最好或最简洁的方式,但它确实有效,并且可以满足我的需求。

当我绑定的选定对象发生变化时,我相信每次都需要清除绑定。

以下代码清除所有现有绑定,并将控件绑定到选定的数据对象,将控件的Text 属性绑定到对象的Xpos 值。

获取组合框的索引值,然后使用它来访问列表中我们想要的对象。

comboBox1_SelectedIndexChanged内:

int index = comboBox1.SelectedIndex;

pos_xUpDown.DataBindings.Clear();
pos_xUpDown.DataBindings.Add("Text", objectlist[index], "Xpos");

pos_yUpDown.DataBindings.Clear();
pos_yUpDown.DataBindings.Add("Text", objectlist[index], "Ypos");

pos_zUpDown.DataBindings.Clear();
pos_zUpDown.DataBindings.Add("Text", objectlist[index], "Zpos");

【讨论】:

    猜你喜欢
    • 2013-07-17
    • 2012-06-12
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    相关资源
    最近更新 更多