当另一个下拉列表中的所选项目发生变化时,需要更改下拉列表中的所选项目

发布于 2024-10-13 11:34:36 字数 1087 浏览 2 评论 0原文

我有一个带有两个组合框(下拉列表样式)的 Windows 窗体应用程序。第一个组合框从 AppTable 对象列表中获取数据,如下所示:

foreach (AppTable table in appTableList)
            cbxSelectName.Items.Add(table.App);

我已经设置了一个触发器,用于何时更改此下拉列表中的所选项目:

this.cbxSelectName.SelectedIndexChanged +=new EventHandler(cbxSelectName_SelectedIndexChanged);

最后,这是触发器调用的方法的定义。请注意,tbxNewWikiWord 文本框中的值会随着所选项目的更改而更改。然而,在第二个下拉列表(cbxUpdateAppType)中却没有发生同样的情况:

private void cbxSelectName_SelectedIndexChanged(object sender, EventArgs e)
    {
        foreach (AppTable table in appTableList)
        {
            if (table.App == cbxSelectName.SelectedItem.ToString())
            {
                this.tbxNewWikiWord.Text = table.WikiWord;
                this.cbxUpdateAppType.SelectedItem = table.Type;
                break;
            }
        }

    }

这就是 AppTable 的外观:

class AppTable
{
    public string App { get; set; }
    public string Type { get; set; }
    public string WikiWord { get; set; }

}

我错过了什么吗?

I have a windows form application with two Combo boxes (Dropdownlist style). The first combo box gets the data from a List of AppTable object, like so:

foreach (AppTable table in appTableList)
            cbxSelectName.Items.Add(table.App);

I have set up a trigger for when the selected item in this dropdown is changed:

this.cbxSelectName.SelectedIndexChanged +=new EventHandler(cbxSelectName_SelectedIndexChanged);

And finally, here is the definition of the method the trigger calls. Please note, the value in tbxNewWikiWord textbox changes as the selected item is changed. However, the same does not happen in the second dropdown list ( cbxUpdateAppType):

private void cbxSelectName_SelectedIndexChanged(object sender, EventArgs e)
    {
        foreach (AppTable table in appTableList)
        {
            if (table.App == cbxSelectName.SelectedItem.ToString())
            {
                this.tbxNewWikiWord.Text = table.WikiWord;
                this.cbxUpdateAppType.SelectedItem = table.Type;
                break;
            }
        }

    }

This is how AppTable looks:

class AppTable
{
    public string App { get; set; }
    public string Type { get; set; }
    public string WikiWord { get; set; }

}

Am I missing something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

满栀 2024-10-20 11:34:36

从 AppTable 对象向 cbxUpdateAppType 添加值修复了该问题。我不知道为什么,因为在这两种情况下,我都添加了字符串。

我只需要检查重复项,这样我就不会在下拉框中出现多个相同值的实例。

foreach (AppTable table in appTableList)
        {
            if (!cbxUpdateAppType.Items.Contains(table.Type))
                cbxUpdateAppType.Items.Add(table.Type);
        }

Adding values to cbxUpdateAppType from the AppTable object fixed it. I'm not sure why since in either case, I was adding Strings.

I just needed to check for duplicates so I don't end up with multiple instances of the same value in my dropdown box.

foreach (AppTable table in appTableList)
        {
            if (!cbxUpdateAppType.Items.Contains(table.Type))
                cbxUpdateAppType.Items.Add(table.Type);
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文