C# 为什么在winform中绑定checkedListBox需要这么多时间?
我将创造性示例项目和测试checkedListBox数据源绑定到 发现它花费了大约0.03秒的时间 我有100个控件,因此如何减少绑定时间 这是我的Sameple代码C# 为什么在winform中绑定checkedListBox需要这么多时间?,c#,winforms,C#,Winforms,我将创造性示例项目和测试checkedListBox数据源绑定到 发现它花费了大约0.03秒的时间 我有100个控件,因此如何减少绑定时间 这是我的Sameple代码 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) {
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
List<clsListItem> items = new List<clsListItem>();
Stopwatch watch = new Stopwatch();
items.Add( new clsListItem(){ Value= "01", Text= "NYY"});
items.Add(new clsListItem() { Value = "02", Text = "OAK" });
items.Add(new clsListItem() { Value = "03", Text = "BAL" });
watch.Start();
((ListBox)checkedListBox1).DataSource = items;
((ListBox)checkedListBox1).DisplayMember = "Text";
((ListBox)checkedListBox1).ValueMember = "Value";
watch.Stop();
TimeSpan tt = watch.Elapsed;
MessageBox.Show(tt.TotalSeconds.ToString());
}
}
public class clsListItem {
public string Text { get; set; }
public string Value { get; set; }
}
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
私有void Form1\u加载(对象发送方、事件参数e)
{
列表项=新列表();
秒表=新秒表();
添加(新的clsListItem(){Value=“01”,Text=“NYY”});
添加(新的clsListItem(){Value=“02”,Text=“OAK”});
添加(新的clsListItem(){Value=“03”,Text=“BAL”});
watch.Start();
((ListBox)checkedListBox1)。数据源=项;
((列表框)选中列表框1.DisplayMember=“Text”;
((列表框)选中列表框1.ValueMember=“Value”;
看,停;
TimeSpan tt=手表已过时间;
Show(tt.TotalSeconds.ToString());
}
}
公共类clsListItem{
公共字符串文本{get;set;}
公共字符串值{get;set;}
}
如果可能,添加到对象集合而不是绑定到数据源:((ListBox)checkedListBox1.Items.AddRange(Items.ToArray());应在0.0005到0.0007秒之间 根据需要延迟加载控件。您也可以尝试不使用DisplayMember
和ValueMember
。相反,在clsListItem
类中重写ToString()
方法。大约浪费0.03~0.04秒。请在设置DisplayMember和ValueMember属性后,最后尝试设置DataSource属性。否则,屏幕上有100个CheckedListBox控件就太多了。没有一个用户能够,也不想,一次在屏幕上看到那么多信息。我会重新考虑您的用户界面。如果可能,请添加到对象集合,而不是绑定到数据源:((ListBox)checkedListBox1.Items.AddRange(Items.ToArray())代码>应在0.0005到0.0007秒之间。