gpt4 book ai didi

c# - 仅选择组合框字符串的一部分或每个索引可能存储两个值?

转载 作者:行者123 更新时间:2023-11-30 21:27:22 24 4
gpt4 key购买 nike

这是我目前所拥有的:

我有一个 ComboBox,我通过从 C# Spotify API 中提取一些播放列表来填充它。我从播放列表对象中获取值 - playlist.Idplaylist.Name

每个播放列表将其 ID 和名称填充到我的 ComboBox 下拉列表中的一行中,以便用户可以看到他们的个人播放列表列表。

接下来,用户在 ComboBox 中选择他们选择的播放列表,并可以拉出所有轨道的 ListView(艺术家等)。

此步骤需要选择用户的 ComboBox 选择,但我只能使用 playlist.Id 值。但是,我需要在框中包含播放列表名称,以便用户知道要选择哪个播放列表。

显然,这是从选定的 ComboBox 选项中提取名称和 ID,我不能将这两个值用于跟踪列表提取。我只想要 Id 字符串。

有没有办法只选择 ComboBox 字符串的一部分(只是 ID)或分别为我的 ComboBox 中的一行分配一个值和一个文本?

感谢我这样做可能很愚蠢。

我也试过:

创建一个仅包含播放列表 ID 的单独数组,并尝试使用 ComboBox 的选定索引来匹配数组索引(仅包含 ID 而不是名称)。

userPlaylists.Items.ForEach(playlist =>
{
playlistArray[i] = playlist.Id;
comboPlaylists.Items.Add(playlist.Name + playlist.Id);
i++;
});

最佳答案

有一些方法可以提取部分 ComboBox 文本,但这不是正确的方法。相反,您应该使用 Data Binding .设置 ComboBox 的 DataSourceDisplayMemberValueMember 属性,以便稍后可以访问 SelectedValue成为身份证。

这是一个例子:

comboPlaylists.DisplayMember = "Name";
comboPlaylists.ValueMember = "Id";

// I'm assuming that `userPlaylists.Items` is a generic list.
// Otherwise, you might want to use `userPlaylists.Items.ToList()` instead.
comboPlaylists.DataSource = userPlaylists.Items;

现在,当你想获取所选播放列表的 Id 时,你可以使用这样的东西:

var id = (int)comboPlaylists.SelectedValue;  // Assuming the ID is an integer.

关于c# - 仅选择组合框字符串的一部分或每个索引可能存储两个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57829244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com