繁体   English   中英

选择项目后如何使组合框输出到文本框

[英]How to get a Combo box to output into text boxes after item selection

我想做的是一旦用户从组合框中选择了一个项目,然后用相应的数据填充文本框。

我得到的错误是:

“ System.Collections.Generic.List.this [int]”的最佳重载方法匹配具有一些无效的参数

参数“ 1”:无法从“对象”转换为“ int”

这是我的代码的一部分:

List<Venue> Ven = new List<Venue>();

    private void cboVenue_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            txtVenue.Text = Ven[cboVenue.SelectedItem].m_VenName;

        }
        catch
        {
        }
    }

请,任何帮助将不胜感激。 谢谢

如果您正在使用数据绑定(或者即使您是手动填充组合框),则无论如何都要使用数据绑定...

<ComboBox x:Name="cmbBox" ItemsSource="{Binding Path=Ven}" />
<TextBox Text="{Binding Path=SelectedValue, ElementName=cmbBox}" />

请注意,您要获取SelectedValue,而不是SelectedIndex或SelectedItem。 但是,取决于设置组合框的方式,SelectedItem可能等同于SelectedValue ...,仍然使用SelectedValue。

尝试这个:

    txtVenue.Text = Ven[cboVenue.SelectedIndex].m_VenName;

您还必须检查索引> = 0,索引-1表示“未选择任何内容”

尝试替换:

txtVenue.Text = Ven[cboVenue.SelectedItem].m_VenName;

与:

txtVenue.Text = Ven[cboVenue.SelectedIndex].m_VenName;

组合框的SelectedItem属性是一个对象,而不是一个int 因此,当您尝试访问列表中的项目时,会收到错误消息。

如果您已将数据绑定到组合框,使得SelectedItem确实包含列表索引值(但只是作为一个对象),则您需要做的所有事情就是将其强制转换为int, 然后使用它在列表中查找值。

例如

int index = Convert.ToInt32(cboVenue.SelectedItem)  

然后,Ven [index]将包含您需要的内容。

或者,您可能需要查看组合框的SelectedText,SelectedValue或Selectedindex属性,以重新获得所需的值。

尝试使用SelectedIndex而不是SelectedItem。 它是整数。

List<Venue> Ven = new List<Venue>();

private void cboVenue_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {
        txtVenue.Text = Ven[cboVenue.SelectedIndex].m_VenName;
    }
    catch
    {
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM