[英]Dynamically create checkboxes for each object in list
我有一個項目,要注冊某個小組的某個成員參加了某個日期的會議。
我想要的功能是:
我的問題是我一直在嘗試為清單中的每個對象“成員”動態創建復選框。 有什么聰明的方法嗎?
我認為接下來我將遍歷復選框組中的每個選定復選框,並從每個成員checkbox.checked中選擇成員ID,並將其傳遞給SQL查詢。
歡迎所有輸入,因為我有點卡在這里。 :-)
我通過使用像Sidewinder94建議的CheckedListBox解決了這個問題,謝謝!
用我的人員列表中的對象填充復選框的第一種方法:
public void FillCheckBox(List<person> listan)
{
checkedListBox1.Items.Clear();
foreach (person item in listan)
{
checkedListBox1.Items.Add(item, true);
}
}
然后,我遍歷所有Checked項目,並使用“ checkedListBox1.CheckedItems”集合對所有已檢查項目進行插入查詢我的數據庫。
private void button1_Click(object sender, EventArgs e)
{
postgresConnection _con = new postgresConnection();
group va = (group)comboGrupper.SelectedItem;
int index = va.gruppid;
foreach (person item in checkedListBox1.CheckedItems)
{
_con.AddPeopleAttendance(item.personid, index);
}
}
謝謝您的幫助! :-)
假設您正在使用WPF,則可以為該會議的每個成員創建UserControls。 如果這樣做,則在UserControl中簡單的復選框就足夠了。 如果將UC存儲在列表或陣列中,則可以在集合中循環,如果選中此復選框,則將其添加到存儲與會者的輔助列表/陣列中。
public class PersonUC : UserControl
{
public Person;
public PersonUC(Person p)
{
Person = p;
}
}
public class MainWindow
{
private List<PersonUC> personUCs;
private void MethodCalledAfterEventSelected(List<Person> p)
{
//circle through the collection to add the UCs to your listbox
personUCs = new List<PersonUC>();
foreach(var item in p)
{
personUCs.Add(new PersonUC(item));
}
yourListBox.Items = personsUC;
}
private List<Person> GetAttendet()
{
List<Person> attendet = new List<Person>();
foreach (PersonUC item in personsUC)
{
if(item.youCheckboxName.Checked)
attendet.Add(item.Person);
}
return attendet;
}
}
該代碼未經測試,因此可能會有一些錯誤,但是我希望我能幫上忙。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.