C# c如何刷新列表框中的项目
我有一个方法,将项目添加到我的列表框中,名为refreshInterface,程序启动后立即调用该方法,使用FormItems类在列表框中添加homeforms的名称,下面是rereshInterface方法C# c如何刷新列表框中的项目,c#,listbox,updates,C#,Listbox,Updates,我有一个方法,将项目添加到我的列表框中,名为refreshInterface,程序启动后立即调用该方法,使用FormItems类在列表框中添加homeforms的名称,下面是rereshInterface方法 public void refreshInterface() { //int number = 0; foreach (DataSet1.xspGetAnalysisUsageTypesRow homeForms in myDataSet.x
public void refreshInterface()
{
//int number = 0;
foreach (DataSet1.xspGetAnalysisUsageTypesRow homeForms in myDataSet.xspGetAnalysisUsageTypes)
{
var forms = new FormItems(homeForms);
listBox1.Items.Add(forms);
}
}
FormItems类如下所示
public class FormItems
{
public DataSet1.xspGetAnalysisUsageTypesRow types { get; set; }
public FormItems(DataSet1.xspGetAnalysisUsageTypesRow usageTypes)
{
types = usageTypes;
}
public override string ToString()
{
// returns the rows that are relating to types.xlib_ID
var libtyps = types.GetxAnalysisUsageRows();
var cnt = 0;
foreach (DataSet1.xAnalysisUsageRow ty in libtyps)
{
//returns true if ty is null
bool typeNull = ty.Isxanu_DefaultNull();
// if its false, if xanu_Default is set
if (!typeNull)
{
cnt += 1;
}
}
var ret = String.Format("set {0} [Set: {1}]", types.xlib_Desc, cnt);
//return this.types.xlib_Desc;
return ret;
}
}
每个列表框列表框位于homeform项目的左侧,有许多可以添加到其中的报表,因此,例如,我从列表框中选择了一个homeform,右侧有12个文本框,每个文本框有一对浏览和清除按钮。如果我点击浏览按钮,一个新表单出现,我从该表单中选择一个报告并将其添加到一个特定的文本框中,该homeform的计数应该更新,并且我清除了一个特定homeform的文本框,计数也应该更新
在调试应用程序时,它会根据添加到Homeform的报表数量显示每个Homeform的计数,但在程序运行时,如果向Homeform添加新报表,则在重新启动调试会话之前,计数不会更新。有人告诉我使用数据绑定方法,但我不确定如何在这里使用它
如何更新我的列表框项目?您应该将列表框组件源绑定到可观察集合,您对可观察集合所做的每次更新都将更新列表框数据。您可能应该研究绑定。这里是一个很好的起点:
Might not be exact but should give you an idea.
public void refreshInterface()
{
Dictionary<int,string> items = new Dictionary<int,string>();
//int number = 0;
foreach (DataSet1.xspGetAnalysisUsageTypesRow homeForms in myDataSet.xspGetAnalysisUsageTypes)
{
var formitem = new FormItems(homeForms);
items.Add(formitem.someprop, formitem.toString());
}
listbox.DataSource = items;
listbox.DisplayMember = "Value";
listbox.ValueMember = "Key";
}
如果您希望GUI响应数据更改,那么绑定是您最好的朋友。这里的算法是什么?我问这个问题的原因是因为我以前从未使用过bindin,这取决于您是否使用XML或编程…research net的详细信息,有很多