gpt4 book ai didi

c# - 将项目添加到列表然后列表出现在组合框中

转载 作者:太空宇宙 更新时间:2023-11-03 16:11:00 24 4
gpt4 key购买 nike

我正在开发 WPF 应用程序。它没有正确地写入 ComboBox,我不确定为什么。

在 C 驱动器上有许多标记为 Rameses-101Rameses-102 等的文件夹。在每个文件夹中都有一个配置文件存储在 MDB 数据库中。直到最近,我们都会重命名事件的“Rameses”文件夹以更改配置文件并对其执行工作。

Current WPF Form

以上是我的表单的一部分,安装的配置文件选择组合框列出了所有以 Rameses-* 开头的文件夹,然后列出它们。人们提示文件夹命名约定很糟糕,并希望更简单一些。因此,我希望能够列出存储在每个文件夹内的数据库中的名称,而不是使用文件夹名称,并让下拉框列出这些名称而不是文件夹名称。

我已经到了可以让它显示单个文件夹配置文件名称的地步,仅此而已。我也能够让它列出所有的名字,但是它们在一行上并在组合框中混合在一起。

问题是我在代码中做错了什么。不确定问题到底出在哪里!要么我没有正确地将项目添加到数据列表,要么没有正确关闭循环。

这是我目前所拥有的:

string directory = @"C:\";
string[] folders = Directory.GetDirectories(directory, "Rameses-*");
List<string> dataList = new List<string>();
foreach (string foldername in folders)
{
//var myDataTable = new System.Data.DataTable();
using (var conection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" + "data source=" + foldername + "\\Program\\Ramdata.mdb;Jet OLEDB:Database Password=****"))
{
conection.Open();
var query = "Select u_company From t_user";
var command = new System.Data.OleDb.OleDbCommand(query, conection);
var reader = command.ExecuteReader();
while (reader.Read())
{
//profselect.Text = reader[0].ToString();
dataList.Add(reader[0].ToString());
}
reader.Close();
conection.Close();
}
profselect.DataSource = dataList;
profselect.SelectedText = dataList.Last();
}

关于如何实现这一点有什么建议吗?

最佳答案

数据绑定(bind)应该在循环 block 之外。

foreach(...)
{
...
}
profselect.DataSource = dataList;
profselect.SelectedText = dataList.Last();

很高兴听到它对您有用! 8-)

关于c# - 将项目添加到列表然后列表出现在组合框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17479540/

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