CheckBoxList 数据源不会在程序启动中设置。

CheckBoxList Datasource won't set in Program Launch.

所以我尝试从目录加载文件名并将它们设置到检查列表框,但该框始终保持空白,知道为什么会这样吗?

请看下面的代码。

static void Main( string[] args )
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            var launchArg = args.FirstOrDefault( arg => !arg.StartsWith( "-" ) );
            launchArg = @"Apollo";
            if (!String.IsNullOrEmpty(launchArg))
            {
                var configID = launchArg;

                var configuration = AdrConfigurationManager.AdrSettings.Cast<AdrConfigurationElement>().SingleOrDefault(c => String.Equals(c.ID, configID, StringComparison.CurrentCultureIgnoreCase));
                if (configuration == null) throw new ArgumentException(String.Format("Could not find the configuration with ID={0}.", configID));

                // Search for the files.
                DirectoryInfo dirinfo = new DirectoryInfo(@"C:\SVNRepositiory\BMSConsulting\Common\ADR\Client Scripts\" + configuration.ID);
                var fileQuery =
                    from FileInfo fileinfo in dirinfo.GetFiles()
                    orderby fileinfo.Name.Substring(0, 1) ascending
                    select fileinfo.Name;
                // Add files to checkbox. 
                var chkListBox = new CheckedListBox();
                chkListBox.DataSource = fileQuery.ToArray();
                for (int i = 0; i < chkListBox.Items.Count; i++)
                    chkListBox.SetItemChecked(i, true);
                var progress = new AdrProgress(configuration, chkListBox);
                progress.Show();

                Application.Run( progress );
            }
            else
            {
                Application.Run(new ADR());   
            }

chkListBox.DataBind();

低于

chkListBox.DataSource = fileQuery.ToArray();

而不是作为数据源添加,而是遍历查询并添加。

foreach (var variable in fileQuery)
{
    chkListBox.Items.Add(variable);
}