【发布时间】:2019-10-24 17:47:03
【问题描述】:
我让组合框显示“名称”,但是当单击名称时,“类型”和“生活”不想出现在文本框中。
另外,有没有办法让它在 xml 中没有 '/data> 的情况下工作?
data.xml
<?xml version="1.0"?>
<Data>
<Start Name="Anaconda" type="Snake" living="Nowhere" />
<Start Name="Sphynx" type="Cat" living="Everywhere" />
<Start Name="Amanita muscaria" type="Fungus" living="Woodstock" />
</Data>
C# 代码:
public Form1()
{
InitializeComponent();
DataSet dataSet = new DataSet();
dataSet.ReadXml("data.xml");
this.comboBox1.DataSource = dataSet.Tables[0];
this.comboBox1.DisplayMember = "Name";
}
【问题讨论】:
-
您的问题描述不清楚,但如果您正在获取名称、类型和居住在文本框中,那是因为您将整行作为组合框的输入并试图在文本框中获取它。尝试从 dataSet.Tables[0] 中获取名称,因为它包含所有三个。
-
使用 TextBoxes DataBindings 属性。添加一个新的
Binding,使用您的DataSource 将Text 属性绑定到DataColumn的值。见那里的例子。在中间添加BindingSource 可能会改善体验。 -
@Shilpa,我没有得到关于类型或生活在文本框中的价值。更改组合框时,我什至无法在文本框中显示任何数据。
-
@Jimi,我试图让绑定和数据列工作几个小时。我只是无法让它工作,我试过了:comboBox1.DataBindings.Add(new Binding("Text", dataSet, "dataSet.Name")); textBox1.DataBindings.Add(new Binding("Text", dataSet, "dataSet.type"));仍然没有显示。你能帮忙提供代码和解释吗,我对 docs.microsoft 感到困惑。
-
@stackoverflowknitter 你在组合框中获取数据吗?如果是,请告诉您如何将组合框值带到文本框。正如你只需要说 textbox1.Text=comboBox1.SelectedItem;
标签: c# winforms combobox textbox